获取选项元素的name属性,并将其放入php变量中


Take the name attribute of an option element and put it into a php variable

所以我有一个在php中创建的HTML下拉列表。

echo '<select id="myselect" name="myselect">';
    while($row = mysql_fetch_array($query)) {
        echo '<option value="'.$row['categories'].'" id="'.$row['categories'].'">'.$row['categories'].'</option>';
    }
    echo '</select>';

我想做的是将所选的选项转换为一个变量,这样我就可以将其传递到另一个php页面。

echo '<select id="myselect" name="myselect">';
    echo '<option value="make_selection" id="make_selection" name="make_selection">Choose Your Category</option>';
    while($row = mysql_fetch_array($query)) {
        echo '<option value="'.$row['categories'].'" id="'.$row['categories'].'">'.$row['categories'].'</option>';
    }
    echo '</select>';

以上:

if($_POST){
    $selection = $_POST['make_selection'];
    //do something with $selection
    //possibly redirect user using header('Location: page.php');
}

据您所知,php不是这样工作的。一旦运行了这个脚本,它就会显示在用户浏览器上,如果用户不提交表单或发送ajax请求,您将无法执行任何其他操作。

您的PHP在服务器上运行。用户可以在客户端PC上的浏览器中查看生成的HTML/JavaScript。您需要通过HTTP在两者之间进行通信(例如,通过Ajax/JavaScript或往返服务器)。只需在下拉列表的值更改时发送一个请求。

一个更具体的答案需要一个同样具体的问题。

如果要将所选选项传递到下一个PHP页面,还必须在option上分配一个name属性。

echo '<select id="myselect" name="myselect">';
while($row = mysql_fetch_array($query)) {
    echo '<option name="option[]" value="'.$row['categories'].'" id="'.$row['categories'].'">'.$row['categories'].'</option>';
    $i++;
}
echo '</select>';

然后在接收页面上:

if(isset($_POST['option'])) {
    // process here
    print_r($_POST['option']);
}

[]意味着PHP将所有选项视为数组中的值,因此可以对它们进行迭代。

此外,我建议使用MySQLi,它代表MySQL改进。