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

时间:2016-08-23 08:18:54

标签: 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
        $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"/>

和ajax函数

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

它是一个mysql生成的下拉列表并且在更改时它应该用这个客户端位置填充位置输入但是它不起作用.Apache没有返回错误但是我有点noob尤其是当调试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);
                }
            });
        }

2 个答案:

答案 0 :(得分:1)

ajax通话的主要错误通常是,他们没有发送预期的请求或者没有收到预期的结果。这些都至少可以在几乎所有体面的浏览器中看到:

  • 按F12,
  • 转到网络标签然后
  • 检查从此点开始的请求(有时需要重新加载页面)。

另外:几乎每个体面的浏览器都有一个javascript调试器,你可以设置断点并逐步执行代码,同时观察所有感兴趣的变量。

答案 1 :(得分:0)

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