Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/480.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用ajax从数据库检索数据而不刷新页面_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 如何使用ajax从数据库检索数据而不刷新页面

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;"> &

我有一个下拉框,它有两个客户机:客户机a,客户机b,每个客户机表中有2000多个数据,当选择客户机时,我想从数据库中检索所有数据,并在前端显示它,而不进行刷新,现在我是刷新窗口。这个位置刷新页面。有人能帮我吗,谢谢

阿贾克斯

选择框

 <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');