【问题标题】:Failing ajax function and some advice on how to debug jquery/ajax callsajax 函数失败和一些关于如何调试 jquery/ajax 调用的建议
【发布时间】:2016-08-23 08:18:54
【问题描述】:

我正在开发一个 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 没有返回错误,但我有点菜鸟,尤其是在调试 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代码和错误吗?
  • 在 Chrome 中打开开发者控制台 (F12) 或在 Firefox 中打开 (Ctrl+Shift+I),然后转到 Network 选项卡查看请求和响应
  • 第一次尝试data: {action_type: clientdata, name: name},
  • This solutionthis post 可能会有所帮助
  • 基本上是一团糟男人

标签: javascript php ajax


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 由于dataType设置为json,会自动解析。
    猜你喜欢
    • 1970-01-01
    • 2011-06-11
    • 2011-04-06
    • 2014-03-20
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多