Copy link to clipboard
Copied
i've created a search using drop down menu.
Menu items are coming from a data source (record set) but after clicking submit button the section goes to the first item in the drop down menu. how can i keep the selection to the selected item?
Here is the code, i'm not aware where to add the eco selected,
<option value="<?php echo $row_RSspeciality['id']?>"<?php if($HTTP_POST_VARS['id'] == $row_RSspeciality['id']){ echo "SELECTED"; }?>><?php echo $row_RSspeciality['Speciality']?></option>
I have another question, how can i add an (All) item to the drop down menu, which enable the user to search in all the dept.?
You need to match the values. If $_POST['id'] doesn't exist, you need to use whatever value is being sent by the form. Judging from your code, it's Specialty (with a capital S).
<option value="<?php echo $row_RSspeciality['id']?>"<?php
if($_POST['Specialty'] == $row_RSspeciality['Specialty'] ) {echo "SELECTED";}
?>><?php echo
$row_RSspeciality['Speciality']?></option>
Copy link to clipboard
Copied
You are using $HTTP_POST_VARS, which is obsolete and won't work on modern servers. In place of $HTTP_POST_VARS and $HTTP_GET_VARS, you should use $_POST and $_GET respectively.
If your search form uses the GET method, your code should look like this:
<option value="<?php echo $row_RSspeciality['id']?>"
<?php
if($_GET['id'] == $row_RSspeciality['id']){echo "SELECTED";
}?>><?php echo $row_RSspeciality['Speciality']?></option>
how can i add an (All) item to the drop down menu, which enable the user to search in all the dept.?
See the second half of the answer I gave here. Basically, you need to split the SQL query in two. If the option is set to all, run the query without the WHERE clause. If the option is set to anything else, add the WHERE clause to the query using .= (the combined concatenation operator).
Copy link to clipboard
Copied
It didn't work.
the drop down menu returns back to the first item in the list not to the selected one!!
let me write the code from the begining of the select tag.
<select name="Speciality" id="Speciality">
<?php
do {
?>
<option value="<?php echo $row_RSspeciality['id']?>"<?php if($_POST['id'] == $row_RSspeciality['id'] ) {echo "SELECTED";} ?>><?php echo $row_RSspeciality['Speciality']?></option>
<?php
} while ($row_RSspeciality = mysql_fetch_assoc($RSspeciality));
$rows = mysql_num_rows($RSspeciality);
if($rows > 0) {
mysql_data_seek($RSspeciality, 0);
$row_RSspeciality = mysql_fetch_assoc($RSspeciality);
}
?>
</select>
Please help
Copy link to clipboard
Copied
Does $_POST['id'] exist? It will exist only if you have submitted the value from a form through the POST method.
Maybe you should be using $_GET['id'].
In either case, use echo to see what its value is:
if (isset($_POST['id'])) {
echo '$_POST[\'id\'] is ' . $_POST['id'] . '<br />';
} else {
echo '$_POST[\'id\'] does not exist<br />';
}
Copy link to clipboard
Copied
I'm using the Post Method because the values are going out from the form to be resulted in a repeated reagion.
I tried the
if (isset($_POST['id'])) {
echo '$_POST[\'id\'] is ' . $_POST['id'] . '<br />';
} else {
echo '$_POST[\'id\'] does not exist<br />';
}
and it gaves me (does not exist)
I think i mixed puting the id and speciality.
I have the table with 2 fileds,
id (primary key)
speciality (contain the name)
the value of the drop down menu is (id) but the label is (speciality)
I don't know where each one should go in the code
<select name="Speciality" id="Speciality">
<?php
do {
?>
<option value="<?php echo $row_RSspeciality['id']?>"<?php if($_POST['id'] == $row_RSspeciality['id'] ) {echo "SELECTED";} ?>><?php echo $row_RSspeciality['Speciality']?></option>
<?php
} while ($row_RSspeciality = mysql_fetch_assoc($RSspeciality));
$rows = mysql_num_rows($RSspeciality);
if($rows > 0) {
mysql_data_seek($RSspeciality, 0);
$row_RSspeciality = mysql_fetch_assoc($RSspeciality);
}
?>
</select>
Copy link to clipboard
Copied
You need to match the values. If $_POST['id'] doesn't exist, you need to use whatever value is being sent by the form. Judging from your code, it's Specialty (with a capital S).
<option value="<?php echo $row_RSspeciality['id']?>"<?php
if($_POST['Specialty'] == $row_RSspeciality['Specialty'] ) {echo "SELECTED";}
?>><?php echo
$row_RSspeciality['Speciality']?></option>