问题
Suppose you have the following html select statement
<select>
<option value="Newest">Newest</option>
<option value="Best Sellers">Best Sellers</option>
<option value="Alphabetical">Alphabetical</option>
</select>
Now I want to run a php if elseif statement that says,
if (option value = newest) {
// Run this
}
elseif ( option value = best sellers ) {
// Run this
}
etc. But I don't know what to put inside the if elseif statement. In other words instead of 'option value = newest' (which I know is incorrect), what can I put there so that if newest is selected it will execute the if statement, or if best sellers is selected it will execute the elseif statement?
回答1:
Give name to your select.
<select name="selectedValue">
<option value="Newest">Newest</option>
<option value="Best Sellers">Best Sellers</option>
<option value="Alphabetical">Alphabetical</option>
</select>
in your PHP, you will do:
$_POST['selectedValue'];
if I were you, I would prefer a switch-case incase, there are more than 2 conditions.
Example:
switch($_POST['selectedValue']){
case 'Newest':
// do Something for Newest
break;
case 'Best Sellers':
// do Something for Best seller
break;
case 'Alphabetical':
// do Something for Alphabetical
break;
default:
// Something went wrong or form has been tampered.
}
回答2:
First put a name on your select:
<select name="demo">
<option value="Newest">Newest</option>
<option value="Best Sellers">Best Sellers</option>
<option value="Alphabetical">Alphabetical</option>
</select>
Then
if ($_POST['demo'] === 'Newest') {
// Run this
}
elseif ( $_POST['demo'] === 'Best Sellers' ) {
// Run this
}
or
switch($_POST['demo']){
case 'Newest' :
//some code;
break;
case 'Best Sellers':
//some code;
break;
default:
//some code if the post doesn't match anything
}
回答3:
The <select> should have a name attribute, e.g <select name="sortorder">. You could then say
if ($_REQUEST['sortorder'] == 'Newest') {
// TODO sortorder 'Newest' was selected.
}
If you know whether the form data is comming in via HTTP GET or HTTP POST, you could use $_GET['sortorder'] or $_POST['sortorder'] respectively.
回答4:
I think the read-friendly version would be:
switch($option){
case 'Newest':
runNewestFunction();
break;
case 'Best Sellers':
runBestSellersFunction();
break;
case 'Alphabetical':
runAlphabeticalFunction();
break;
defaut:
runValidationRequest();
}
also, please do add the name attribute <select name="option">
回答5:
<?php
if ($_POST['com'] == 1 && $_POST['dept_1'] == 'permanent' )
{
$sel_id= "select MAX(emp_id) from employee ";
$sel_exeid=mysql_query($sel_id) or die(mysql_error());;
while($empid= mysql_fetch_array($sel_exeid))
{
$result = $empid[0];
echo $result;
}
}
?>
<td>
<input class="easyui-validatebox" required="true" name="eid" type="text"id="eid" value="<?php echo ($result);?>" placeholder="Enter Employee Id"/>
</td>
来源:https://stackoverflow.com/questions/15357450/php-if-statement-html-option-value