PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!
Moderator: General Moderators
Jim_Bo
Forum Contributor
Posts: 390 Joined: Sat Oct 02, 2004 3:04 pm
Post
by Jim_Bo » Thu Sep 29, 2005 7:48 pm
Hi,
I cant get the following code to show the database record as the selected option I thought it was correct:
Code: Select all
<select name="category_name">
<?php
$sql = "SELECT * FROM gallery_category";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
?>
<option <?php echo $category_name==$row['category_name'] ? 'selected' : ''?> value="<?php echo $row['category_name']; ?>"><?php echo $row['category_name']; ?></option>
<?php
}
?>
</select>
Cheers
John Cartwright
Site Admin
Posts: 11470 Joined: Tue Dec 23, 2003 2:10 am
Location: Toronto
Contact:
Post
by John Cartwright » Thu Sep 29, 2005 7:53 pm
try
Code: Select all
$sql = "SELECT * FROM gallery_category";
$result = mysql_query($sql) or die(mysql_error());
echo '<select name="category_name">';
while ($row = mysql_fetch_array($result)) {
echo '<option '.($category_name == $row['category_name'] ? 'selected = "selected"' : '').' value="'.$row['category_name'].'">'.$row['category_name'].'</option>';
}
echo '</select>';
And see if that produces an error. Other than that syntax looks ok.
By the way, where does $category_name come from?
Jim_Bo
Forum Contributor
Posts: 390 Joined: Sat Oct 02, 2004 3:04 pm
Post
by Jim_Bo » Thu Sep 29, 2005 8:10 pm
Hi,
$category_name comes from the "select name"
John Cartwright
Site Admin
Posts: 11470 Joined: Tue Dec 23, 2003 2:10 am
Location: Toronto
Contact:
Post
by John Cartwright » Thu Sep 29, 2005 8:23 pm
That won't work unless register globals is ON, which it is OFF by default in any half-new release of php.
Change this line
Code: Select all
echo '<option '.($category_name == $row['category_name'] ? 'selected = "selected"' : '').'
to
Code: Select all
echo '<option '.(isset($_POST['category_name']) && $_POST['category_name'] == $row['category_name'] ? 'selected = "selected"' : '').'
Jim_Bo
Forum Contributor
Posts: 390 Joined: Sat Oct 02, 2004 3:04 pm
Post
by Jim_Bo » Thu Sep 29, 2005 8:29 pm
Hi,
I have sent $category_name across the url and used $_GET .. is that a pluasable way to do it?
Cheers
John Cartwright
Site Admin
Posts: 11470 Joined: Tue Dec 23, 2003 2:10 am
Location: Toronto
Contact:
Post
by John Cartwright » Thu Sep 29, 2005 9:01 pm
so your form method is set to GET instead of POST? that is fine.. just change $_POST to $_GET in that line I told you to change
Jim_Bo
Forum Contributor
Posts: 390 Joined: Sat Oct 02, 2004 3:04 pm
Post
by Jim_Bo » Fri Sep 30, 2005 1:13 am
Hi
What is the correct syntax for this:
Code: Select all
echo '<option '.$_GET['category_name'] == $row['category_name'] ? 'selected' : ''.' value="'.$row['category_id'].'">'.$row['category_name'].'</option>';
the following works but when I try to echo the result the list menu is empty
Code: Select all
<option <?php echo $_GET['category_name'] == $row['category_name'] ? 'selected' : ''?> value="<?php echo $row['category_id']; ?>"><?php echo $row['category_name']; ?></option>
ruchit
Forum Commoner
Posts: 53 Joined: Mon Sep 26, 2005 6:03 am
Post
by ruchit » Fri Sep 30, 2005 1:32 am
corrected syntax
Code: Select all
echo '<option '.($_GET['category_name'] == $row['category_name'] ? 'selected' : '').' value="'.$row['category_id'].'">'.$row['category_name'].'</option>';
Jim_Bo
Forum Contributor
Posts: 390 Joined: Sat Oct 02, 2004 3:04 pm
Post
by Jim_Bo » Fri Sep 30, 2005 1:34 am
Hi,
works great
Cheers