[英]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.