如何在php中通过url传递html选择选项值

如何在php中通过url传递html选择选项值,php,Php,我试图通过url传递选择选项值。选择值来自mysql表。我想将该驱动程序名传递到另一个页面 <?php //another select query goes here. $query1= "SELECT * FROM driver WHERE status='Available'" ; echo '<td>'.'<select name="driver">'; $result1= mysql_query($qu

我试图通过url传递选择选项值。选择值来自mysql表。我想将该驱动程序名传递到另一个页面

 <?php
//another select query goes here.

$query1= "SELECT  * FROM driver WHERE status='Available'" ;
echo '<td>'.'<select name="driver">';
                        $result1= mysql_query($query1);
                        while($row1 = mysql_fetch_assoc($result1))
                                    {   
                                    echo '<option value="'.$row1["name"].'">'.$row1["name"].'</option>';    
                                    }
                                    echo '</select>'.'</td>';
echo'<a rel="facebox" href=db_confirm_booking.php?id='.$row["id"].'&driver='.$_POST['driver'].'>' . 'Confirm' . '</a>';

?>
使用jQuery

调用下拉列表的更改事件

$(function(){
  $("[name=driver]").die('change').live('change', function(){
    var driver = $(this).val();
    if (typeof driver !== 'undefined') {
      window.location.href = 'YOUR_FILE.php?driver='+driver;
    }
  });
});

在your_FILE.php中,使用$_get['driver']获取驱动程序

或者,如果希望表单更安全,可以使用隐藏变量

更换驱动程序时,将其指定为“驱动程序”下拉列表的值

$(function(){
  $("[name=driver]").die('change').live('change', function(){
    var driver = $(this).val();
    if (typeof driver !== 'undefined') {
      window.location.href = 'YOUR_FILE.php?driver='+driver;
    }
  });
});
并张贴表格


在PHP文件中,以$\U POST['hid\U driver']的形式获取它。

U可以为选择字段添加onclick函数,请尝试以下方法

<?php
//another select query goes here.

$query1= "SELECT  * FROM driver WHERE status='Available'" ;
echo '<td>'.'<select name="driver" onchange="window.location.href=\'db_confirm_booking.php?driver=' . $_POST['driver'] . '&id=\'+this.value">';
                        $result1= mysql_query($query1);
                        while($row1 = mysql_fetch_assoc($result1))
                                    {   
                                    echo '<option value="'.$row1["name"].'">'.$row1["name"].'</option>';    
                                    }
                                    echo '</select>'.'</td>';
echo'<a rel="facebox" href=db_confirm_booking.php?id='.$row["id"].'&driver='.$_POST['driver'].'>' . 'Confirm' . '</a>';

?>
试试这个代码

<?php
//another select query goes here.

$query1= "SELECT  * FROM driver WHERE status='Available'" ;
echo '<td>'.'<select name="driver" 
onChange="window.location.href=this.value">';
$result1= mysql_query($query1);
while($row1 = mysql_fetch_assoc($result1))
{   
echo '<option value="db_confirm_booking.php?id='.$row["id"].'&driver='.$_POST['driver'].'">"'.$row1["name"].'">'.$row1["name"].'</option>';    
}
echo '</select>'.'</td>';
echo'<a rel="facebox" href=db_confirm_booking.php?id='.$row["id"].'&driver='.$_POST['driver'].'>
' . 'Confirm' . '</a>';

?>
示例代码


它将用url中的驱动程序名称重新加载页面。

什么不起作用?显示错误未定义索引:C:\wamp\www\taxiweb\mainT\booking\u management.php第3010行中的驱动程序您可以在提交后获得驱动程序选择名称,或者使用ajax引用:这意味着您的$\u POST['driver']未声明!您还忘记了href attr的引号。在你最后的回音声明中。在C:\wamp\www\taxiweb\mainT\booking\u management.php第301s行的相同错误未定义索引外,您无法访问$row,直到相同。现在在两行中显示两个错误未定义索引。您能在booking\u management.phpecho第301行给我发送代码吗;试试这个代码echo“它是否工作正常”是的。它工作正常。但我想传递驱动程序名,也试试这个代码;
<select name="sel" id="sel" onchange="seturl(this.value)">
<option value=""></option>
</select>

<script>
function seturl(id)
{
  document.forms[0].action="test.php?driver="+id;
  document.forms[0].submit();
}
</script>