我希望我的 PHP 查询能够动态更新显示的数据,而无需刷新。
我有这两个选择选项。
<select name="d">
<option <?php if ( $d == '50' ) { echo 'value="50" selected="selected" >50 km '; } else { echo 'value="50" >50 km '; } ?></option>
<option <?php if ( $d == '100' ) { echo 'value="100" selected="selected" >100 km '; } else { echo 'value="100" >100 km '; } ?></option>
</select>
<select name="o">
<option <?php if ( $o == '1' ) { echo 'value="1" selected="selected" >from nearest to furthest '; }
else { echo 'value="1" >from nearest to furthest '; } ?>
</option>
<option <?php if ( $o == '2' ) { echo 'value="2" selected="selected" >from furthest to nearest '; }
else { echo 'value="2" >from furthest to nearest '; } ?>
</option>
</select>
这是包含 3 个变量 a
(来自文本输入)、d
和 o
的 PHP 部分。
$a = isset($_GET['a']) ? $_GET['a'] : '';
$d = isset($_GET['d']) ? $_GET['d'] : '';
$o = isset($_GET['o']) ? $_GET['o'] : '';
if ( !empty($_GET['a']) )
{
$request = mysqli_query($sql,"
SELECT *
FROM adresses
WHERE adress = '".$a."' HAVING distance <= ".$d." order by ".$o."");
}
这是最终结果:
echo '<div id="result">';
while ( $row = mysqli_fetch_array($request) )
{
echo '<p>'.$row['shop'].' | '.$row['adress'].' | '.echo $row['town'].'</p>';
}
echo '</div>';
我以前从未使用过 AJAX,我想知道如何运行上面这样的查询。
这是我对 AJAX 部分的尝试(不确定语法):
<script src="jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#result").change(function(){
var a = $(this).val();
var d = $(this).val();
var o = $(this).val();
$.ajax({
type: "GET",
url: "test.php",
data: { a: $a, d: $d, o: $o } ,
success: function(result){
$("#result").html(result);
}
});
});
});
</script>
请问您能告诉我应该在 test.php
文件中放入什么吗?
最佳答案
在 test.php 中,您应该从服务器(即 MySQL)收集数据。
$a = isset($_GET['a']) ? $_GET['a'] : '';
$d = isset($_GET['d']) ? $_GET['d'] : '';
$o = isset($_GET['o']) ? $_GET['o'] : '';
if ( !empty($_GET['a']) )
{
$request = mysqli_query($sql,"
SELECT *
FROM adresses
WHERE adress = '".$a."' HAVING distance <= ".$d." order by ".$o."");
}
echo '<div id="result">';
while ( $row = mysqli_fetch_array($request) )
{
echo '<p>'.$row['shop'].' | '.$row['adress'].' | '.echo $row['town'].'</p>';
}
echo '</div>';
无论 php 脚本返回什么(在上面的情况下回显),它都将在您的结果变量中:
success: function(result){
$("#result").html(result);
}
还有一些事情。
您定义的变量不正确,应该是:
var a = $('#a').val();
var d = $('#d').val();
var o = $('#o').val();
为此,您需要将 id 分配给您的选择
<select name="d" id="d">
JS 变量没有 $ 符号,因此您发送到 test.php 的变量应该是:
data: { a: a, d: d, o: o }
注意:以上都没有经过测试,只需复制/粘贴您的代码即可让您走上正确的轨道。
关于php - 如何使用 AJAX 执行具有多个选择选项的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46776811/