Javascript 失败的ajax函数以及关于如何调试jquery/ajax调用的一些建议

Javascript 失败的ajax函数以及关于如何调试jquery/ajax调用的一些建议,javascript,php,ajax,Javascript,Php,Ajax,我正在为crm做一个项目(只是为了学习),我在使用ajax功能时遇到了问题 <div class="dropdown"> <label>Name</label> <select class="named" name ="named" id="named" onchange="userData('<?php echo $client['client_name']; ?>')"> <?php

我正在为crm做一个项目(只是为了学习),我在使用ajax功能时遇到了问题

<div class="dropdown">
    <label>Name</label>
    <select class="named" name ="named" id="named" onchange="userData('<?php echo $client['client_name']; ?>')">
        <?php
        $clients=mysqli_query($db->db,"SELECT client_name FROM clients");
        foreach($clients as $client): ?>
        <option value="<?= $client['client_name'];?>"><?= $client['client_name']; ?></option>
    <?php endforeach; ?>
    </select>

</div>
<div class="form-group">
    <label>Location</label>
    <input type="text" class="form-control" name="locationd" id="locationd"/>
这是一个mysql生成的下拉列表,在更改时,它应该用这个客户端位置填充位置输入,但它不起作用。Apache没有返回错误,但我有点不知道,特别是在调试ajax调用时(如何**我可以看到它发送和接收的数据?:D)。提前感谢您的帮助!! 我也发布了adminaction.php代码

if($_POST['action_type'] == 'clientdata'){
            $tblName = 'clients';
            $conditions['where'] = array('client_name' =>$_POST['named']);
            $conditions['return_type'] = 'single';
            $client = $db->getRows($tblName,$conditions);
            echo json_encode($client);
            $tblName  = 'clients_contact';
对于任何感兴趣的人,我都是这样做的

function userData(){
            userData = $("#named").serialize()+'&action_type=clientdata';
            $.ajax({
                type: 'POST',
                dataType:'JSON',
                url: 'adminAction.php',
                data: userData,
                success:function(data){
                    $('#locationd').val(data.client_location);
                }
            });
        }

如果您的AJAX输出为JSON格式,您可以使用
$.parseJSON(result)
将JSON数据解码到数组。

AJAX调用的主要错误是,它们没有发送预期的请求或没有收到预期的结果。这两种情况至少可以通过以下方式在几乎所有体面的浏览器中看到:

  • 按F12键
  • 转到“网络”选项卡,然后
  • 检查从此点开始发出的请求(有时需要重新加载页面)

另外:几乎每一款像样的浏览器都有一个javascript调试器,您可以在其中设置断点并逐步执行代码,同时查看所有感兴趣的变量。

您可以在此处添加ajax代码和错误吗?在Chrome中打开开发者控制台(F12)或在Firefox中打开(Ctrl+Shift+I),然后转到“网络”选项卡查看请求和响应。首先尝试
数据:{action\u type:clientdata,name:name},
,基本上这可能会有帮助。由于
dataType
设置为
json
,它将被自动解析。
function userData(){
            userData = $("#named").serialize()+'&action_type=clientdata';
            $.ajax({
                type: 'POST',
                dataType:'JSON',
                url: 'adminAction.php',
                data: userData,
                success:function(data){
                    $('#locationd').val(data.client_location);
                }
            });
        }