繁体   English   中英

如何传递多个PHP获取参数

[英]How to pass multiple PHP get parameters

在这段代码中,我试图让一个想要从下拉列表中更改事件状态的用户。 下拉菜单包含三个选项:

“已联系”“已核实”“已完成”

我希望用户单击“提交状态”并将它们带到 change.php,如 action 属性中指定的那样。 Change.php 应该有 2 个 get 参数:他们想要更改的事件的数据库列的 id,以及他们想要将其更改为的新状态。 例如它应该是这样的: http://localhost/schedule/change.php?id=60?status=verified

但这就是我现在得到的:

http://localhost/schedule/change.php?status=verified&submitStatus=Change+status

而且,下拉列表显示错误:注意:未定义索引:第 1 行中的状态

 // Assume this is line 1
 echo "<form method='get' action='change.php?id=".urlencode($e['id'])."?url=".urlencode($_GET['status'])."'><select name='status' id='status'>'";

    if ($e['status'] == "contacted") {

      echo "<option value='contacted' selected>Contacted</option>";

      echo "<option value='verified'>Verified Appointment</option>";

      echo "<option value='completed'>Job Completed</option>";

      $counter++;

    } else if ($e['status'] == "verified") {

      echo "<option value='verified' selected>Verified Appointment</option>";

      echo "<option value='contacted'>Contacted</option>";

      echo "<option value='completed'>Job Completed</option>";

      $counter++;

    } else if ($e['status'] == "completed") {

      echo "<option value='completed' selected>Job Completed</option>";

      echo "<option value='contacted'>Contacted</option>";

      echo "<option value='verified' selected>Verified Appointment</option>";

      $counter++;

    } else {

      echo "No event status found!";

    }

    if ($counter == 1) {

    echo "<input type='submit' name='submitStatus' value='Change status'></form></select>
    </td>"; 

    echo "</tr>";

  }

我知道真正的问题在于第一个 echo 行,我从这里开始表单标记,我知道问题出在 action 参数中,但我只是不知道该怎么做! 请帮我在这里...

错误是您正在使用? 分隔参数而不是使用&&& 所以你的代码应该是:

 echo "<form method='get' action='change.php?id=".urlencode($e['id'])."&url=".urlencode($_GET['status'])."'><select name='status' id='status'>'";

另外,正如 Phil 所说,如果您不想更改 url 中的数据值,请尝试使用POST 例如,如果更改 url 中的id ,change.php 将根据 url 中的id参数进行更改。 在我看来,您应该使用POST作为更改对我来说意味着非常安全的事情,而不是通过GET完成的事情。

显然,这并不意味着您不应该使用GET 这些方法同样重要,但并不安全,因为可以如此轻松地从 url 更改数据。 GET可用于搜索过程,例如您不必更改数据库,只需检索即可。

我可能跑题了,但我认为知道应该使用哪种方法对您来说非常重要。 谢谢!!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM