Πως θα κάνω selected μία μεταβλητή με την <select>

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

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

Απάντηση
valantis315
Δημοσιεύσεις: 37
Εγγραφή: 25 Ιουν 2008 20:30

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από valantis315 » 10 Απρ 2009 17:44

Καλησπέρα στα αστέρια του freestuff, το πρόβλημα μου είναι σε select που τραβάει δεδομένα απο την βάση, ο κώδικας είναι ο παρακάτω:

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

mysql_query&#40;$result&#41;;
	$query = "SELECT * FROM record WHERE r_id='$r_id'";
	$result = mysql_query&#40;$query&#41;;
	$row = mysql_fetch_array&#40;$result&#41;;
    $r_id = $row&#91;'r_id'&#93;;
    $record_date = $row&#91;'record_date'&#93;;
	$record_lesson = $row&#91;'record_lesson'&#93;;
&#125;
  else &#123;
  	$r_id = $_POST&#91;'r_id'&#93;;
    $record_date = $_POST&#91;'record_date'&#93;;
	$record_lesson = $_POST&#91;'record_lesson'&#93;;
    if &#40;$r_id != ''&#41; &#123;
					$result = "SET NAMES 'utf8' ";
mysql_query&#40;$result&#41;;
      $query = "UPDATE record SET 
                r_id='$r_id',
				record_date='$record_date',
				record_lesson='$record_lesson'
 WHERE r_id='$r_id'";
	  $result = mysql_query&#40;$query&#41;;
      echo '<b>Η εγγραφή ενημερώθηκε.</b>';
    &#125;
  &#125;
Ο Παραπάνω κώδικας απο οτι θα καταλάβατε πέρνει τις εισαγωγές μιας γραμμής και της βάζει σε μεταβλητές ώστε πιο κάτω να τις εμφανίζει αρχικά και αν θέλει ο χρήστης να μπορεί να τις αλλάξει αυτό γίνετε με το παρακάτω:

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

<form action="edit_record.php" method="POST">
  <table>
      <tr>
        <td align="left">ID&#58; </td>
        <td><input type="text" name="r_id" size="10" value="<?php echo $r_id; ?>"></td>
       </tr>
      	<tr>
        <td align="left">ΗΜΕΡΟΜΗΝΙΑ&#58; </td>
        <td><input type="text" name="record_date" size="80" value="<?php echo $record_date; ?>"></td>
      </tr>
Μέχρι εδώ όλα ωραία επιδή όλα είναι type text
ποιο κάτω όμως ο χρήστης θα πρέπει να επιλέγει απο select τα δεδομένα, όποιο μάθημα επιλέγει θα πρέπει να γίνεται Update στην βάση, σε αυτό δεν έχω πρόβλημα, το πρόβλημα είναι πως όταν ο χρήστης θα πατήσει τροποποίηση θα πρέπει να είναι selected το μάθημα που ήταν αρχικά επιλεγμένο και εαν θέλει ο ίδιος μόνο τότε να το αλλάξει, με τον παρακάτω κώδικα εμφανίζει κανονικά το select αλλα με επιλεγμένο το 1ο μάθημα.

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

<tr>
        <td align="left">ΜΑΘΗΜΑ&#58;</td>
  		<td><select name="record_lesson" size="1" value="">
      <?php    
			include&#40;"connect.php"&#41;;
				$result = "SET NAMES 'utf8' ";
mysql_query&#40;$result&#41;;
			$result = mysql_query&#40;"SELECT * FROM lessons ORDER BY lessons_name"&#41;;
			while&#40;$row = mysql_fetch_array&#40;$result&#41;&#41;
			&#123;
				echo '<option value="'.$row&#91;'lessons_name'&#93; . '"'  . '>'. $row&#91;'lessons_name'&#93; . '</option>';
			&#125;
		?>
  </select>
 
 
 </td></tr></table>
έχω δοκιμάσει επίσης την αλλαγή της γραμμής του option σε:

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

echo '<option value="'.$row&#91;'lessons_name'&#93; . '"'  . 'selected=$record_lesson>'. $row&#91;'lessons_name'&#93; . '</option>';
αλλα τίποτα... όποιαδήποτε ιδέα βοηθάει.

Ευχαριστώ προκαταβολικά

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από Apostolis_38 » 11 Απρ 2009 01:21

Σου εμφανίζει κανονικά τις εγγραφές που έχεις (row1, row2 κ.λ.π.);

valantis315
Δημοσιεύσεις: 37
Εγγραφή: 25 Ιουν 2008 20:30

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από valantis315 » 11 Απρ 2009 01:34

Apostolis_38 έγραψε:Δώσε και ένα

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

name = ".$row&#91;'lessons_name'&#93; ."
ώστε κάθε γραμμή να παίρνει διαφορετικό name.
Αποστόλη δεν καταλαβα τι ακριβώς λες να κάνω, τι θα κερδίσω εάν εκχωρήσω στην μεταβλητή το $row['lessons_name']? Αφού το όνομα που στέλνει η προηγούμενη σελίδα το έχω είδη στην $record_lesson, το θέμα είναι πως αυτή θα την κάνω να είναι η προεπιλεγμένη στην select, εάν δεν καταλαβα σωστά αυτό που μου λές πές μου πως θα το χρησιμοποιήσω αυτο που λές. Σε ευχαριστώ για την απάντηση.

valantis315
Δημοσιεύσεις: 37
Εγγραφή: 25 Ιουν 2008 20:30

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από valantis315 » 11 Απρ 2009 01:37

Ολα λειτουργούν κανονικά και η λίστα με τα option λειτουργεί κανονικά και το update γίνεται κανονικά, απλά εγώ θέλω να μήν μου εμφανίζει στο select το πρώτο που είναι στην βάση αλλα θέλω να είναι προεπιλεγμένο αυτό που υπήρχε στην βάση πρίν, ώστε εάν ο χρήστης δεν θέλει να κάνει κάποια αλλαγή να το αφήσει ώς έχει (ουσιαστικά να κάνει update με τα ίδια δεδομένα).

valantis315
Δημοσιεύσεις: 37
Εγγραφή: 25 Ιουν 2008 20:30

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από valantis315 » 11 Απρ 2009 01:42

Εδώ είναι η αρχική σελίδα που εμφανίζει τα στοιχεία της εγγραφής.
Συνημμένα
1.jpg

valantis315
Δημοσιεύσεις: 37
Εγγραφή: 25 Ιουν 2008 20:30

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από valantis315 » 11 Απρ 2009 01:46

εδώ είναι οι σελίδα που γίνονται οι αλλαγές, όταν πατήσει ο χρήστης "επεξεργασία", βλέπουμε ότι τα πεδία που είναι text box πέρνουν κανονικά τα ονόματα που υπήρχαν στην βάση, ενώ τα select εμφανίζουν το 1ο όνομα που υπάρχει στην βάση που είναι το *, εμείς εκει θέλουμε να είναι προεπιλεγμένα στα select, το όνομα του μαθήματος που ήταν επελεγμένο Γραφικά, Γκούμας κ.ο.κ. Οποιαδήποτε ιδέα θα βοηθήσει πολύ.
Συνημμένα
2.jpg

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από Apostolis_38 » 11 Απρ 2009 01:56

Το name το είχες δηλώσει, στο select, δικό μου λάθος.

Δοκίμασε να στείλεις στο form action τα στοιχεία που θέλεις (π.χ.

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

edit_record.php?id=<?php echo $row&#91;'id'&#93;;?>
και μετά με ένα echo $_GET['id'] να το εμφανίσεις εκεί που θέλεις.
Τελευταία επεξεργασία από το μέλος Apostolis_38 την 11 Απρ 2009 02:03, έχει επεξεργασθεί 1 φορά συνολικά.

valantis315
Δημοσιεύσεις: 37
Εγγραφή: 25 Ιουν 2008 20:30

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από valantis315 » 11 Απρ 2009 02:01

Το έχω κάνει αυτό Αποστόλη, ετσι πέρνω τα δεδομένα για την Ημερομηνία, id και αρχείο, το θέμα είναι πως ακριβώς πρέπει να συντάξω το option ώστε να μου εμφανίζει προεπιλεγμένα το $record_lesson

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από Apostolis_38 » 11 Απρ 2009 02:15

Οχι, άλλο τρόπο σου λέω.
Στην αρχή κάνεις το select, μετά

form action="edit_record.php?id=<?php echo $row['id'];?>" method="POST">
<table>
<tr>
<td align="left">ID: </td>
<td><input type="text" name="r_id" size="10" value="<?php echo $r_id; ?>"></td>
</tr>
<tr>
<td align="left">ΗΜΕΡΟΜΗΝΙΑ: </td>
<td><input type="text" name="record_date" size="80" value="<?php echo $record_date; ?>"></td>
</tr>


και μετά
echo '<option value="'.$row['lessons_name'] .'''> echo $_GET['id']</option>';


Στο echo $_GET θα εμφανίζει την προηγούμενη μεταβλητή αλλά η φόρμα με το post θα στείλει το lessons_name που θέλεις.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από dva_dev » 11 Απρ 2009 02:22

Δοκίμασε να αλλάξεις το

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

echo '<option value="'.$row&#91;'lessons_name'&#93; . '"'  . 'selected=$record_lesson>'. $row&#91;'lessons_name'&#93; . '</option>'; 
σε

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

if &#40;$row&#91;'lessons_name'&#93; == $record_lesson&#41;
	echo '<option value="' . $row&#91;'lessons_name'&#93; . '" selected>' . $row&#91;'lessons_name'&#93; . '</option>';
else
	echo '<option value="' . $row&#91;'lessons_name'&#93; . '">' . $row&#91;'lessons_name'&#93; . '</option>';

valantis315
Δημοσιεύσεις: 37
Εγγραφή: 25 Ιουν 2008 20:30

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από valantis315 » 11 Απρ 2009 02:26

Apostolis_38 έγραψε:Οχι, άλλο τρόπο σου λέω.
Στην αρχή κάνεις το select, μετά

form action="edit_record.php?id=<?php echo $row['id'];?>" method="POST">
<table>
<tr>
<td align="left">ID: </td>
<td><input type="text" name="r_id" size="10" value="<?php echo $r_id; ?>"></td>
</tr>
<tr>
<td align="left">ΗΜΕΡΟΜΗΝΙΑ: </td>
<td><input type="text" name="record_date" size="80" value="<?php echo $record_date; ?>"></td>
</tr>


και μετά
echo '<option value="'.$row['lessons_name'] .'''> echo $_GET['id']</option>';


Στο echo $_GET θα εμφανίζει την προηγούμενη μεταβλητή αλλά η φόρμα με το post θα στείλει το lessons_name που θέλεις.
Αποστόλη με αυτό που μου λές ναι μεν θα εμφανιστεί το μάθημα αλλα δεν εμφανίζονται τα υπόλοιπα που είναι στην βάση ώστε εάν θέλει ο χρήστης να κάνει αλλαγή δεν θα μπορέσει.

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από Apostolis_38 » 11 Απρ 2009 02:34

Το id το έβαλα για παράδειγμα.
Εξάλλου μπορείς να συμπεριλάβεις όσα πεδία θέλεις με το &

valantis315
Δημοσιεύσεις: 37
Εγγραφή: 25 Ιουν 2008 20:30

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από valantis315 » 11 Απρ 2009 02:55

Apostolis_38 έγραψε:Το id το έβαλα για παράδειγμα.
Εξάλλου μπορείς να συμπεριλάβεις όσα πεδία θέλεις με το &
Μαλλον κάπου χανόμαστε Αποστόλη :D, μου λές όταν εκτελείται το form action να στέλνει κάποιες πληροφορίες με το που πατηθεί το submit, αυτό γιατί να γίνει; Το πρόβλημα είναι σε αυτή την σελίδα πρίν ο χρηστης πατήσει το submit, πιστεύω πως το μόνο που χρειάζεται είναι να τοποθετηθεί σωστά ενα selected, που δέν ξέρω που/πώς να το βάλω.

valantis315
Δημοσιεύσεις: 37
Εγγραφή: 25 Ιουν 2008 20:30

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από valantis315 » 11 Απρ 2009 02:58

dva_dev δέν είχα δεί το post σου, το δοκίμασα και έπαιξε :D :D :D :D :D :D :D :D :D, σε υπερ-ευχαριστώ να είσαι καλά φιλαράκι πεδεύομαι απο το μεσημέρι, Αποστόλη σε ευχαριστώ πολύ για τον χρόνο σου φίλε.

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

Πως θα κάνω selected μία μεταβλητή με την <select>

Δημοσίευση από korgr » 11 Απρ 2009 10:33

Εναλλακτικά για να αποφυγεις τα if και να το κανεις με 2 γραμμες κώδικα σου παραθέτω και μια παραλλαγη αυτου που σωστα σου προτεινε ο dva_dev :

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

$selected = &#40;$row&#91;'lessons_name'&#93; == $record_lesson&#41; ? ' selected' &#58; '';
echo '<option value="' . $row&#91;'lessons_name'&#93; . '"'.$selected.' >' . $row&#91;'lessons_name'&#93; . '</option>';

Απάντηση

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

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

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