我希望我的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
文件中添加什么内容吗?
答案 0 :(得分:0)
在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 }
注意:以上所有内容均未经过测试,只需复制/粘贴您的代码即可让您走上正轨。