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

时间:2012-07-09 23:20:53

标签: php html ajax forms post

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

4 个答案:

答案 0 :(得分:2)

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');
}

答案 1 :(得分:1)

仅仅是为了你自己的知识,这不是php的工作原理。运行此脚本后,它将显示在用户浏览器上,如果没有他们提交表单或发送ajax请求,您将无法执行任何其他操作。

答案 2 :(得分:0)

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

更具体的答案需要一个等效的问题。

答案 3 :(得分:0)

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

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 Improved。