5

假设您有以下 html select 语句

<select>
<option value="Newest">Newest</option>
<option value="Best Sellers">Best Sellers</option>
<option value="Alphabetical">Alphabetical</option>
</select>

现在我想运行一个 php if elseif 语句,它说,

if (option value = newest) {
// Run this
}
elseif ( option value = best sellers ) {
// Run this
}

等等。但我不知道在 if elseif 语句中放什么。换句话说,而不是'option value = latest'(我知道这是不正确的),我可以放什么以便如果选择了最新的它将执行if语句,或者如果选择了畅销书,它将执行elseif语句?

4

4 回答 4

12

为您的选择命名。

<select name="selectedValue">
<option value="Newest">Newest</option>
<option value="Best Sellers">Best Sellers</option>
<option value="Alphabetical">Alphabetical</option>
</select>

在您的 PHP 中,您将执行以下操作:

$_POST['selectedValue'];

如果我是你,我更喜欢switch-case incase,有两个以上的条件。

例子:

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.
}
于 2013-03-12T09:31:50.263 回答
6

首先在您的选择上输入名称:

<select name="demo">
<option value="Newest">Newest</option>
<option value="Best Sellers">Best Sellers</option>
<option value="Alphabetical">Alphabetical</option>
</select>

然后

if ($_POST['demo'] === 'Newest') {
// Run this
}
elseif ( $_POST['demo'] === 'Best Sellers' ) {
// Run this
}

或者

switch($_POST['demo']){
    case 'Newest' : 
        //some code;
        break;
    case 'Best Sellers':
        //some code;
        break;
    default:
        //some code if the post doesn't match anything
}
于 2013-03-12T09:30:38.190 回答
0

<select>应该有一个name属性,例如<select name="sortorder">. 然后你可以说

if ($_REQUEST['sortorder'] == 'Newest') {
  // TODO sortorder 'Newest' was selected.
}

如果你知道表单数据是通过 HTTP GET 还是 HTTP POST 进来的,你可以分别使用$_GET['sortorder']or $_POST['sortorder']

于 2013-03-12T09:29:25.867 回答
0

我认为易于阅读的版本是:

switch($option){
    case 'Newest':
        runNewestFunction();
    break;
    case 'Best Sellers':
        runBestSellersFunction();
    break;
    case 'Alphabetical':
        runAlphabeticalFunction();
    break;
    default:
        runValidationRequest();
}

另外,请添加名称属性<select name="option">

于 2013-03-12T09:29:58.220 回答