Javascript 如何使用ajax从数据库检索数据而不刷新页面
我有一个下拉框,它有两个客户机:客户机a,客户机b,每个客户机表中有2000多个数据,当选择客户机时,我想从数据库中检索所有数据,并在前端显示它,而不进行刷新,现在我是刷新窗口。这个位置刷新页面。有人能帮我吗,谢谢 阿贾克斯 选择框Javascript 如何使用ajax从数据库检索数据而不刷新页面,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个下拉框,它有两个客户机:客户机a,客户机b,每个客户机表中有2000多个数据,当选择客户机时,我想从数据库中检索所有数据,并在前端显示它,而不进行刷新,现在我是刷新窗口。这个位置刷新页面。有人能帮我吗,谢谢 阿贾克斯 选择框 <select name="client" id="client" style="margin:-24px 0 0 1px;background-color:#E8E8E8;width:104px;position: absolute;"> &
<select name="client" id="client" style="margin:-24px 0 0 1px;background-color:#E8E8E8;width:104px;position: absolute;">
<option value="">Select Client</option>
<?php
$sql=mysql_query("select * from client_list");
$clientid=$_GET['clientid'];
while($row=mysql_fetch_assoc($sql))
{
if(strlen($_GET['clientid'])>0 && $_GET['clientid']==$row['clientid']){
print' <option id="client" name="client" value="'.$row['clientid'].'" selected>'.$row['clientid'].' </option>';}
else{
print' <option id="client" name="client" value="'.$row['clientid'].'" >'.$row['clientid'].' </option>';
}
}
?>
</select>
将url更改为:
url:+clientid我已经尝试了你的代码,实际上你在做什么,你改变了你的url,这就是为什么每次你改变下拉选择时都会得到刷新 我对您的选择代码做了一些修改,即从if选项部分删除了select关键字,然后在完成选择后添加了一个div,您应该在下面看到 选择代码 就这样 我想这应该对你有帮助
感谢您在代码中犯的两个错误。首先,为while循环中的多个元素设置一个ID。请从所有选项标记中删除ID attr,并仅保留select标记的attr,如下所示:
<select name="client" id="client" style="margin:-24px 0 0 1px;background-color:#E8E8E8;width:104px;position: absolute;">
<option value="">Select Client</option>
<option value="1">value 1</option>
<option value="2">value 2</option>
...
</select>
var clientid = $('#client').find(':selected').attr('value');
现在请检查,它现在应该可以工作了。谢谢附加到display的数据,那么您为什么要重新加载?您能写下您发布url的代码吗?因为我想从数据库中检索所选客户端的数据。我尝试了您所说的$display.appendhtml;并删除了window.location,但它没有显示所选客户端数据库中的数据,你能写下代码吗?好的,我需要选择框html,因此,请将这部分内容发布到我的回复中,你能看到我更新的ajax代码吗?它显示了错误引用错误:无效的分配左侧…//xxxxxxx.com+?action=clientnetworkpricelist&clientid='+clientid+'谢谢,但现在它是这样的:它不接受所选的客户端id也重复两次什么重复两次?试试alertclientid;要查看clientid vard中的内容,谢谢您的回答,但它显示错误警告:mysql\u fetch\u array:提供的参数不是有效的mysql结果资源,位于第11行的/data/data/www/fms/docs/clientnetworkpricelist/yourfile.php中。我想您也犯了同样的错误,请删除window.location并使用我给定的代码,制作另一个文件,代表您的客户端id获取您的客户端数据,然后在您所需的位置回显。提供的参数无效表示您在查询where子句中给出了错误的内容,这就是为什么它没有得到任何结果并显示警告的原因。你应该调试你的代码。
<select name="client" id="client" style="margin:-24px 0 0 1px;background-color:#E8E8E8;width:104px;position: absolute;">
<option value="">Select Client</option>
<?php
$sql=mysql_query("select * from client_list");
$clientid=$_GET['clientid'];
while($row=mysql_fetch_assoc($sql))
{
if(strlen($_GET['clientid'])>0 && $_GET['clientid']==$row['clientid'])
{
print' <option id="client" name="client" value="'.$row['clientid'].'">'.$row['clientid'].' </option>';
}
else{
print' <option id="client" name="client" value="'.$row['clientid'].'">'.$row['clientid'].' </option>';
}
}
?>
</select>
<div id="result"></div>
<script>
$(function() { document.ready
$("#client").on("change", function() {
var clientid=$("#client").val();
$.ajax({
type:"post",
url:"yourfile.php",
data:"title="+clientid,
success:function(data){
$("#result").html(data);
}
});
});
});
</script>
mysql_connect("localhost","root","");
mysql_select_db("yourdbname");
$value = $_POST['title'];
$query = mysql_query("SELECT * from client WHERE id=$value");
$result = mysql_fetch_array($query);
echo $result['clientdata'] ;
<select name="client" id="client" style="margin:-24px 0 0 1px;background-color:#E8E8E8;width:104px;position: absolute;">
<option value="">Select Client</option>
<option value="1">value 1</option>
<option value="2">value 2</option>
...
</select>
var clientid = $('#client').find(':selected').attr('value');