[英]how to hold values of two dynamic dependent select boxes in php , mysqli
我正在為此構建一個新的Web應用程序,稱為存儲定位器,我需要通過從屬選擇框過濾單個表中包含的sql數據,並在表中顯示存儲地址。 問題是我無法同時為SQL查詢保存兩個選擇框的值
這是我的index.php代碼
<?php
require 'dbconn/dbconfig.php';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>store SEARCH </title>
</head>
<body>
<form name="form1" action="" method="post">
<table>
<tr>
<td>Select store</td>
<td>
<select id="storeid" onchange="change_store()">
<option>Select store</option>
<?php
$res=mysqli_query($db,"SELECT DISTINCT `STORE` FROM `master` ORDER BY `STORE` ASC");
while ($row=mysqli_fetch_array($res)) {
?>
<option value="<?php echo $row['STORE']; ?>"><?php echo $row['STORE'];?></option>
<?php
}
?>
</select>
</td>
</tr>
<tr>
<td>Select State</td>
<td>
<div onchange="change_state()">
<select id="statedd" >
<option>select State</option>
</select>
</div>
</td>
</tr>
<tr>
<td>Select District </td>
<td>
<div onchange="change_district()">
<select id="districtdd">
<option>select District</option>
</select>
</div>
</td>
</tr>
<tr>
<td>Select City </td>
<td>
<div onchange="change_city()">
<select id="citydd">
<option>select City</option>
</select>
</div>
</td>
</tr>
<tr>
<td>Select Branch </td>
<td>
<div>
<select id="branchdd">
<option>select Branch</option>
</select>
</div>
</td>
</tr>
</table>
</form>
<script type="text/javascript">
function change_store() {
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","ajax.php?store="+document.getElementById("storeid").value,false);
xmlhttp.send(null);
document.getElementById("statedd").innerHTML=xmlhttp.responseText;
}
function change_state() {
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","ajax.php?state="+document.getElementById("stateid").value,false);
xmlhttp.send(null);
document.getElementById("districtdd").innerHTML=xmlhttp.responseText;
alert(xmlhttp.responseText);
}
function change_district() {
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","ajax.php?district="+document.getElementById("districtid").value,false);
xmlhttp.send(null);
document.getElementById("citydd").innerHTML=xmlhttp.responseText;
}
function change_city() {
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","ajax.php?city="+document.getElementById("cityid").value,false);
xmlhttp.send(null);
document.getElementById("branchdd").innerHTML=xmlhttp.responseText;
}
</script>
</body>
</html>
這是我的ajax.php
<?php
include 'dbconn/dbconfig.php';
?>
<?php
$store=$_GET["store"];
$state=$_GET["state"];
if($store!='')
{
$res=mysqli_query($db, "SELECT DISTINCT `STATE` FROM `master` WHERE `STORE`='$store' ORDER BY `STATE` ASC");
echo "<select id='stateid' onchange='change_state()'>";
while ($row=mysqli_fetch_array($res)) {
echo "<option value=".$row['STATE'].">".$row['STATE']."</option>";
}
echo "</select>";
}
if($state!='')
{
$res=mysqli_query($db, "SELECT DISTINCT `DISTRICT` FROM `master` WHERE `STATE` LIKE '$state%' AND `STORE`='$store' ORDER BY `DISTRICT` ASC");
echo "<select id='districtid' onchange='change_district()'>";
while ($row=mysqli_fetch_array($res)) {
echo "<option value=".$row['DISTRICT'].">".$row["DISTRICT"]."</option>";
}
echo "</select>";
}
?>
在更改狀態時,它不處理選擇框控制台中的列表區域,顯示錯誤是
注意:未定義的索引:存儲在第5行的C:\\ xampp \\ htdocs \\ ifsctech \\ ajax.php中
問題是所選存儲值無法用於下一個查詢處理。 如何保存和發送兩個選擇框的動態值以處理查詢,請幫助
這似乎是問題所在
xmlhttp.open("GET","ajax.php?store="+document.getElementById("storeid").value,false);
不贊成在主線程上使用同步XMLHttpRequest,因為它會對最終用戶的體驗產生不利影響。 如需更多幫助,請訪問https://xhr.spec.whatwg.org/ 。
甚至我也在同一個問題上掙扎。 我發現的內容也可能對您有所幫助。 我將分享對我有用的東西。 您可以參考它。
<?php
//index.php
function load_state()
{
$connect = mysqli_connect("localhost", "root", "","state_city");
$output = '';
$sql = "SELECT * FROM state ORDER BY state_name";
$result = mysqli_query($connect, $sql);
while($row = mysqli_fetch_array($result))
{
$output .= '<option value="'.$row["state_id"].'">'.$row["state_name"].'</option>';
}
return $output;
}
?>
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
<!--<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>-->
</head>
<body>
<br /><br />
<div class="container" style="width:600px;">
<h2 align="center">Dependent Drop-Down using Ajax - for Testing</h2><br /><br />
<select name="state" id="state" class="form-control action">
<option value="">Select State</option>
<?php echo load_state(); ?>
</select>
<br />
<select name="city" id="city" class="form-control">
<option value="">Select City</option>
</select>
</div>
</body>
</html>
<script>
$(document).ready(function(){
$('#state').change(function(){
var state_id = $(this).val();
$.ajax({
url:"fetch.php",
method:"POST",
data:{stateId:state_id},
dataType:"text",
success:function(data)
{
$('#city').html(data);
}
});
});
});
</script>
PHP代碼
<?php
//fetch.php
$connect = mysqli_connect("localhost", "root", "", "state_city");
$output = '';
$sql = "SELECT * FROM city WHERE state_id = '".$_POST["stateId"]."' ORDER BY city_name";
$result = mysqli_query($connect, $sql);
$output = '<option value="">Select City</option>';
while($row = mysqli_fetch_array($result))
{
$output .= '<option value="'.$row["city_id"].'">'.$row["city_name"].'</option>';
}
echo $output;
?>
需要考慮的幾點:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.