簡體   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