繁体   English   中英

如何在php中的mysql查询中获取下拉列表的值

[英]how to get value of dropdown into a mysql query in php

我希望有人可以帮助我解决这个问题。 我正在尝试获取下拉菜单的值并将其注入到 Mysql 查询中。 这是我的代码:

<form method=post onchange="putSomethingHere">
<select name="myvalue">
  <option value="7225">7225</option>
  <option value="7226">7226</option>
  <option value="7227">7227</option>
</select>
</form>

<?php
if($dbhandle){

  $q = mysqli_query($dbhandle, "
SELECT rfqlogs.id
     , customers.customer
     , contacts.Name
     , constructions.construction
     , grades.grade
     , rfqlogs.dueDate
     , rfqlogs.rcvDate
     , rfqlogs.proccess
     , rfqlogs.scope
     , status.status
     , rfqlogs.priority
  FROM rfqlogs
  JOIN contacts 
    ON rfqlogs.contid = contacts.cont_id
  JOIN grades 
    ON rfqlogs.gradeId = grades.grd_id
  JOIN customers 
    ON rfqlogs.custId = customers.cust_id
  JOIN constructions 
    ON rfqlogs.constId = constructions.id
  JOIN status 
    ON rfqlogs.status = status.id
 WHERE rfqlogs.id='myvalue' 
"); 
?>

您需要将输出表单的脚本和处理表单提交的脚本分开。 您可以将两者合并到同一个文件中,但对于基本实现,让我们使用分离的文件。

让我们调用 form.php 输出表单的脚本(不包括整个 HTML 结构)。

<form method="post" onchange="putSomethingHere" action="handler.php">
  <select name="myvalue">
    <option value="7225">7225</option>
    <option value="7226">7226</option>
    <option value="7227">7227</option>
  </select>
</form>

处理表单提交的脚本(我不会检查你的 SQL,它应该是功能性的):

<?php
  // $dbhandle definition goes here
  $myvalue = isset($_REQUEST['myvalue']) ? $_REQUEST['myvalue'] : false;
  // You can check whether `myvalue` was sent in the request or not, then take the required action.
  // validate and sanitize $myvalue here, use intval() if `myvalue` must always be an integer or mysqli_real_escape_string() in case it's an string.
  if($dbhandle){
    $q = mysqli_query($dbhandle, "SELECT rfqlogs.id, customers.customer, 
      contacts.Name, constructions.construction, grades.grade, 
      rfqlogs.dueDate, rfqlogs.rcvDate, rfqlogs.proccess,
      rfqlogs.scope, status.status, rfqlogs.priority
      FROM rfqlogs
      INNER JOIN contacts ON rfqlogs.contid = contacts.cont_id
      INNER JOIN grades ON rfqlogs.gradeId = grades.grd_id
      INNER JOIN customers ON rfqlogs.custId = customers.cust_id
      INNER JOIN constructions ON rfqlogs.constId = constructions.id
      INNER JOIN status ON rfqlogs.status = status.id
      WHERE rfqlogs.id='$myvalue'"); 
?>

PD:在这种情况下,您可以同时使用 $_REQUEST 和 $_POST。

您可以使用$_POST这样做:

尝试这个 :

<form method="post" onchange="putSomethingHere">
<select name="myvalue">
<option value="7225">7225</option>
<option value="7226">7226</option>
<option value="7227">7227</option>
</select>
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $myvalue= $_POST["myvalue"];
}
if($dbhandle){

$q = mysqli_query($dbhandle, "SELECT rfqlogs.id, customers.customer, 
contacts.Name,
constructions.construction, grades.grade, rfqlogs.dueDate, rfqlogs.rcvDate, 
rfqlogs.proccess,
rfqlogs.scope, status.status, rfqlogs.priority
FROM rfqlogs
INNER JOIN contacts ON rfqlogs.contid = contacts.cont_id
INNER JOIN grades ON rfqlogs.gradeId = grades.grd_id
INNER JOIN customers ON rfqlogs.custId = customers.cust_id
INNER JOIN constructions ON rfqlogs.constId = constructions.id
INNER JOIN status ON rfqlogs.status = status.id
WHERE rfqlogs.id='".$myvalue."' "); 
?>
$_POST["myvalue"];

这应该可以解决问题。 php $_POST 全局变量包含从表单发送的所有变量。 因此,通过替换数组键,您可以获得所需的任何变量。

暂无
暂无

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

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