PHP - 作为get方法的url的一部分,<form action =“”>属性中的变量

时间:2016-05-14 12:38:45

标签: php get

尝试在html表单的action属性中传递一个php变量,作为基于所选选项通过url传递变量的get方法的一部分。

 <?php 
 ...
 $sql = "SELECT staffID, staffName
 FROM staff";

$results = mysqli_query($conn, $sql)
or die ('Problem with query' . mysqli_error($conn));
?>
    <form action = "task7.php?" method = "get"> 
        <select>
        <?php 
        while($row = mysqli_fetch_array($results))
        {
            $staffID = $row["staffID"]; 
            $staffName = $row["staffName"];
        ?>
        <option value = "<?php echo $staffID ?>"> <?php echo $staffName ?> </option>
        <?php 
        } 
        ?> 
        </select>

        <br> <br> 
        <input type = "submit" value = "Submit"> 
        <input type = "reset" value = "Reset">  

    </form> 

在这种特殊情况下,我试图将staffID变量作为url的一部分传递。像这样tast7.php?staffID=12345

4 个答案:

答案 0 :(得分:1)

您的代码中缺少的所有内容都是select

上的名称
 <select name="staffID">  <!-- adding the name will append the selected value to the url -->
    <?php 
    while($row = mysqli_fetch_array($results))
    {
        $staffID = $row["staffID"]; 
        $staffName = $row["staffName"];
    ?>
    <option value = "<?php echo $staffID ?>"> <?php echo $staffName ?> </option>
    <?php 
    } 
    ?> 
</select>

答案 1 :(得分:1)

在php中,

<form action = "task7.php" method = "get"> 
    <select name="staffID">
    <?php 
    while($row = mysqli_fetch_array($results))
    {
    ?>

    <option value = "<?php echo $row["staffID"]; ?>"> <?php echo $row["staffName"]; ?> </option>

    <?php 
    } 
    ?> 
    </select>
    <br> <br> 
    <input type = "submit" value = "Submit"> 
    <input type = "reset" value = "Reset">  
</form> 

您可以轻松地使用jQuery / JS。

例如:(使用jQuery)

&#13;
&#13;
function formSubmit(element){
  var url = $("#test").attr("action", "");
  url += "?" + element.name + "=" + element.value;
  $("#test").attr("action", url);
  $("#test")[0].submit();
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form action="test.php" method="get" id="test">
  <select name="id" onChange="formSubmit(this)">
    <option value="abc">abc</option>
    <option value="xyz">xyz</option>
  </select>
</form>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

试试这个

$id = 1;


//later

<form action = "task7.php?staffID="+<?= $id ?> method = "get"> 

答案 3 :(得分:0)

你的想法太复杂了。尝试这样:

<form action = "task7.php" method = "get"> 
    <select name="staffID">
    <?php 
    while($row = mysqli_fetch_array($results))
    {
        $staffID = $row["staffID"]; 
        $staffName = $row["staffName"];
    ?>
    <option value = "<?php echo $staffID ?>"> <?php echo $staffName ?> </option>
    <?php 
    } 
    ?> 
    </select>
    <br> <br> 
    <input type = "submit" value = "Submit"> 
    <input type = "reset" value = "Reset">  
</form> 

你要找的是不是“php变量”。客户端不存在这样的事情。相反,您只需要将为<select>标记选择的值作为简单的“HTTP GET”参数提交。这正是方法GET的表单标记所做的。您只需为选项命名,即全部:<select name="staffID">