Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
netpumber
Δημοσιεύσεις: 103
Εγγραφή: 08 Μαρ 2009 19:06

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από netpumber » 03 Δεκ 2010 09:32

Καλημέρα σας!

Λοιπόν ας υποθέσουμε οτι δημιουργούμε αυτό το πίνακα με στοιχεία απο τη βάση δεδομένων:

Κώδικας: Επιλογή όλων

 <table >
<?php
$query = "select * from table";
$selected = mysql_query&#40;$query&#41;;

while &#40;$row = mysql_fetch_array&#40;$selected&#41;&#41;&#123;
echo "
    
    <tr>
    <td align=\"center\" c><input type=\"checkbox\"/></td>
    <td align=\"center\" >&#123;$row&#91;'column_1'&#93;&#125;</td>
    <td align=\"center\"><input  type=\"text\"/></td>
    </tr>";
&#125;
?>
    <table >
Υποβάλοντας την φόρμα πώς μπορούμε να πάρουμε τα στοιχεία της δεύτερης και τρίτης στήλης δηλ. ($row['column_1'] , και ότι βάλει ο χρήστης στο textbox) απο της γραμμές του πίνακα που έχουν επιλεχθεί με το checkbox; Θα πρέπει να δημιουργήσω κάποιο "συνθηματικό" που θα είναι διαφορετικό με κάθε γραμμή και θα συνδέεται με το αντίστοιχο checkbox φαντάζομαι..

Έχετε καμιά ιδεά;

Ευχαριστώ!

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από korgr » 03 Δεκ 2010 10:20

Το μυστικό είναι να δημιουργήσεις arrays στα ονοματα των μεταβλητων για τα checkboxes και τα textfields
Πχ

Κώδικας: Επιλογή όλων

 <table >
<?php
$query = "select * from table";
$selected = mysql_query&#40;$query&#41;;

while &#40;$row = mysql_fetch_array&#40;$selected&#41;&#41;&#123;
echo "
   
    <tr>
    <td align=\"center\" ><input type=\"checkbox\" name=\"checkboxes&#91;&#93;\"/></td>
    <td align=\"center\" >&#123;$row&#91;'column_1'&#93;&#125;</td>
    <td align=\"center\"><input  type=\"text\" name=\"textboxes&#91;&#93;\"/></td>
    </tr>";
&#125;
?>
    <table >
Όταν θα γίνει submit θα έχεις δύο πίνακες, τους:

Κώδικας: Επιλογή όλων

$checkboxes = $_POST&#91;'checkboxes'&#93;;
$textboxes = $_POST&#91;'textboxes'&#93;;
Ορίζεις μετά ένα νέο πίνακα πχ

Κώδικας: Επιλογή όλων

$selectedTextboxes = array&#40;&#41;;
Αρχίζεις και εξετάζεις τις τιμές του πρώτου πίνακα:

Κώδικας: Επιλογή όλων

for&#40;$i = 0; $n < count&#40;$checkboxes&#41;; $i++&#41;&#123;
if&#40;$checkboxes&#91;$i&#93;&#41; $selectedTextboxes&#91;&#93; = $textboxes&#91;$i&#93;;
&#125;
Στο τέλος ο πίνακας $selectedTextboxes θα έχει μόνο τα κείμενα των οποίων είχε επιλεγεί το checkbox

netpumber
Δημοσιεύσεις: 103
Εγγραφή: 08 Μαρ 2009 19:06

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από netpumber » 03 Δεκ 2010 11:42

Το ίδιο θα κάνω και για το $row['column_1'] για να πάρω και το τί θα τυπώσει σε εκείνη τη γραμμή;

Δλδ.

Κώδικας: Επιλογή όλων

<td align=\"center\" name=\"column_1&#91;&#93;\">&#123;$row&#91;'column_1'&#93;&#125;</td>
Γιατί αυτό που θέλω είναι να παίρνει και το τι θα γράψει στο textbox αλλα και το τί θα έχει εμφανίσει στη δεύτερη στήλη απο τη βάση δεδομένων..


Σ΄ ευχαριστώ πολύ!

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από korgr » 03 Δεκ 2010 14:59

Αν θες να παίρνεις και το εμφανιζόμενο (απορώ γιατί, αφού το έχεις στην βάση σου και δεν δινεις δυνατοτητα να αλλαξει απο τον χρήστη) θα πρέπει να χρησιμοποιήσεις και hidden fields πχ

Κώδικας: Επιλογή όλων

 <table >
<?php
$query = "select * from table";
$selected = mysql_query&#40;$query&#41;;

while &#40;$row = mysql_fetch_array&#40;$selected&#41;&#41;&#123;
echo "
   
    <tr>
    <td align=\"center\" ><input type=\"checkbox\" name=\"checkboxes&#91;&#93;\"/></td>
    <td align=\"center\" ><input  type=\"hidden\" name=\"hiddenValues&#91;&#93;\" value=\"&#123;$row&#91;'column_1'&#93;&#125;\"/>&#123;$row&#91;'column_1'&#93;&#125;</td>
    <td align=\"center\"><input  type=\"text\" name=\"textboxes&#91;&#93;\"/></td>
    </tr>";
&#125;
?>
    <table >

netpumber
Δημοσιεύσεις: 103
Εγγραφή: 08 Μαρ 2009 19:06

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από netpumber » 05 Δεκ 2010 02:18

Λοιπόν σας ευχαριστώ πολυ!

Και για να μην αναρωτιέσαι γιατί μπορεί να θέλω να ξανα-πάρω τη μεσαία στήλη θα σου πώ ότι τα στοιχεία της θέλω να τα περνάω σε έναν άλλον πίνακα..

:)

netpumber
Δημοσιεύσεις: 103
Εγγραφή: 08 Μαρ 2009 19:06

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από netpumber » 05 Δεκ 2010 18:39

Παιδιά , πως μπορώ να το κάνω να ελέγχει αν η τιμή σε κάποιο textbox είναι μηδενική ;

Έγραψα αυτό αλλα μου έβγαλε σφάλμα.

Κώδικας: Επιλογή όλων

				$checkboxes = $_POST&#91;'checkboxes'&#93;;
                                                $textboxes = $_POST&#91;'textboxes'&#93;;
                                                $value = $_POST&#91;'hiddenValues'&#93;;
						
						$selectedTextboxes = array&#40;&#41;;
						$selectedhiddenValues = array&#40;&#41;;
						
						 
						$n = count&#40;$checkboxes&#41;;
						$y = $n - 1;
						
						
						
						for&#40;$i = 0; $i <= $y; $i++&#41;&#123;
					         if&#40;$checkboxes&#91;$i&#93; && !empty&#40;$selectedTextboxes&#91;$i&#93; &#41;&#123;
							 $selectedTextboxes&#91;&#93; = $textboxes&#91;$i&#93;;
							 $selectedhiddenValues &#91;&#93; = $value&#91;$i&#93;;
							&#125;else&#123;
							 
							$k = 1;
														
							&#125;
							
							
						&#125;
Notice: Undefined offset: 0 in .... on line 297

Notice: Undefined offset: 0 in .... on line 298

Notice: Undefined offset: 1 in .... on line 297

Notice: Undefined offset: 1 in .... on line 298

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από korgr » 05 Δεκ 2010 19:09

εγώ δεν βλέπω να κλείνουν σωστά οι παρενθέσεις στο
if($checkboxes[$i] && !empty($selectedTextboxes[$i])){

netpumber
Δημοσιεύσεις: 103
Εγγραφή: 08 Μαρ 2009 19:06

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από netpumber » 05 Δεκ 2010 19:50

Εντάξει ήταν λάθος απο την αντιγραφή η παρένθεση.. Η λογική είναι σωστή;Μπορώ και αλλοιώς μήπως να ελένξω αν είναι κενή η τιμή που επιστρέφει; To error συνεχίζει να εμφανίζεται..

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από korgr » 05 Δεκ 2010 20:49

Βάλε αυτό στην κορυφή του script

Κώδικας: Επιλογή όλων

error_reporting = E_ALL & ~E_NOTICE;

netpumber
Δημοσιεύσεις: 103
Εγγραφή: 08 Μαρ 2009 19:06

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από netpumber » 05 Δεκ 2010 20:58

Αυτό απο ότι κατάλαβα κάνει τα σφάλματα να μην εμφανίζονται..Το θέμα είναι οτι κάτι λάθος γίνεται με την Ιφ και παρόλο που έχουν τιμές τα textboxes , μπαίνει στην else...

Άβαταρ μέλους
Pavel
Honorary Member
Δημοσιεύσεις: 1046
Εγγραφή: 08 Αύγ 2003 00:05
Τοποθεσία: UK

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από Pavel » 05 Δεκ 2010 23:01

Άλλαξε αυτό

Κώδικας: Επιλογή όλων

if&#40;$checkboxes&#91;$i&#93; && !empty&#40;$selectedTextboxes&#91;$i&#93; &#41;&#123; 
σε αυτό

Κώδικας: Επιλογή όλων

if&#40;$checkboxes&#91;$i&#93; && !empty&#40;$textboxes&#91;$i&#93; &#41;&#123; 
Εσύ είσαι τρελός.

netpumber
Δημοσιεύσεις: 103
Εγγραφή: 08 Μαρ 2009 19:06

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από netpumber » 05 Δεκ 2010 23:23

Σε ευχαριστώ πολύ φίλε μου! Τώρα φαίνεται να δουλεύει..

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από korgr » 06 Δεκ 2010 10:18

τα Notices δεν είναι σφάλματα, τα Errors είναι!
Απλά σου γεμίζουν τα log files του server χωρίς λόγο.
Σου έλεγε πως χρησιμοποιείς ένα δείκτη πίνακα που δεν έχει οριστεί ακόμα. Το αποτέλεσμα όμως θα ήταν το ίδιο, κενή τιμή!

Πράγματι το λάθος σου ήταν πως χρησιμοποιούσες λάθος όνομα πίνακα όπως είπε ο Pavel.

netpumber
Δημοσιεύσεις: 103
Εγγραφή: 08 Μαρ 2009 19:06

Επιλογή στοιχείων απο πίνακα με την βοήθεια checkbox

Δημοσίευση από netpumber » 06 Δεκ 2010 16:15

Λοιπον παιδιά εμφανίστηκε και άλλο προβληματάκι..

Έχω αυτόν τον κώδικα τελικά..

Κώδικας: Επιλογή όλων

 <table >
<?php
$query = "select * from table";
$selected = mysql_query&#40;$query&#41;;

while &#40;$row = mysql_fetch_array&#40;$selected&#41;&#41;&#123;
echo "
   
    <tr>
    <td align=\"center\" ><input type=\"checkbox\" name=\"checkboxes&#91;&#93;\"/></td>
    <td align=\"center\" ><input  type=\"hidden\" name=\"hiddenValues&#91;&#93;\" value=\"&#123;$row&#91;'column_1'&#93;&#125;\"/>&#123;$row&#91;'column_1'&#93;&#125;</td>
    <td align=\"center\"><input  type=\"text\" name=\"textboxes&#91;&#93;\"/></td>
    </tr>";
&#125;
?>
 <table >

<?php

                  $checkboxes = $_POST&#91;'checkboxes'&#93;;
                  $textboxes = $_POST&#91;'textboxes'&#93;;
                   $value = $_POST&#91;'hiddenValues'&#93;;
                  
                  $selectedTextboxes = array&#40;&#41;;
                  $selectedhiddenValues = array&#40;&#41;;
                  
                  
                  $n = count&#40;$checkboxes&#41;;
                  $y = $n - 1;
                  
                  
                  
                  for&#40;$i = 0; $i <= $y; $i++&#41;&#123;
                        if&#40;$checkboxes&#91;$i&#93; && !empty&#40;$textboxes&#91;$i&#93;  &#41;&#123;
                      $selectedTextboxes&#91;&#93; = $textboxes&#91;$i&#93;;
                      $selectedhiddenValues &#91;&#93; = $value&#91;$i&#93;;
                     &#125;else&#123;
                     
                     $k = 1;
                                          
                     &#125;
                     
                     
                  &#125; 
?>
Αρχικά φαίνεται να δουλεύει.. Αλλα ας υποθέσουμε τώρα οτι στον πίνακα της html εμφανίζονται 2 γραμμές .

Αν επιλέξω το checkbox της δευτερης γραμμής και πατήσω να υποβληθεί η φόρμα, τότε θα μπει στην else. Αυτό που κατάλαβα είναι οτι θα πρέπει να έχεις πάντα επιλεγμένο το πρώτο checkbox για να μην μπει στην else.

Πώς μπορούμε να το αποφύγουμε αυτό;

σας ευχαριστώ πολύ και πάλι..

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες