所以我有一个在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改进。