0

我的代码有问题,我想知道是否可以$_POST在我的控制器中显示我的代码以查看发生了什么:

在我的jQuery代码中,我的ajaxCall函数以以下格式构建n ajaxCall(url, data_array, div_id, callback_fn)

我已经完成console.log(data_array);并且它显示了正确的数据,但是有没有看到里面发生了什么,callback_fn因为它没有保存到数据库中?

由于我所有的代码都返回了 200 且没有错误,所以我回到了这个问题

阿贾克斯代码:

$('body').on("click", "#product_save_youtube_btn", function (e) {
        e.preventDefault();
        var box = $("#product_youtube");
        var id = box.data("id"); 

        var url = box.data("url");              
        var data_array = { 
                id : id, 
                new_id : box.val(), 
            };

            //console.log(data_array);

        if($.trim(box.val()) != "")
        {
            ajaxCall(url, data_array, null, "update_product_youtube");

            alert("Your You Tube ID Has Been Changed");
        }           

    });

ajax调用:

function ajaxCall(url, data_array, div_id, callback_fn) {

        return $.ajax({
            type:'POST',
            url:url,
            beforeSend: function(){
                 $("#" + div_id).html("<img src='http://www.domain.co.nz/files/large/ajax-loader.gif' alt='Loading..' title='Loading..'/>");
            },
            data:data_array,
            complete:function (data) {
               $("#" + div_id).html(data.responseText);

               if(callback_fn != null)
               {
                   eval(callback_fn + '()');
               }
            }
        });
    }

PHP 代码 - Callback_fn:

public function ajax_update_product_youtube()
        {
            if($_POST)
            {
                $id = intval($_POST['id']);
                $new_id = mysqli_real_escpe_string(trim($_POST['new_id']));

                if(empty($id))
                {
                    $this->Ps_products_model->update_product_youtube($id, $new_id);
                }                           
            }
        }

模型:

public function update_product_youtube($table, $id, $new_id)
    {
        $table = $this->_table_products;

       $this->db->query("UPDATE {$table} SET youtube = ? WHERE id = ?", array($new_id, $id));
    }
4

3 回答 3

1

如果我理解正确,您正在尝试查看控制器的响应。为此,您可以执行以下操作之一:

  1. 使用hurl.it并手动发送您的参数以查看响应。

  2. 使用 chrome 开发工具/萤火虫。如果在 chrome 中,您可以按 F12 -> 控制台 -> 右键单击​​控制台 -> 选择日志 xmlHttpRequests。您的所有 ajax 请求和响应都将被记录和查看。

于 2013-06-08T22:35:08.267 回答
0

好像您在问如何调试 ajax 请求。您可以在这里做很多事情。首先,如果您确定错误发生在服务器端,在 chrome 或 firefox 中,您可以检查开发人员控制台中的网络选项卡。这将列出您的页面发出的所有请求以及正在传递的请求和响应参数。如果控制器方法抛出 php 或 sql 错误,则将作为响应返回,除非您已将 php 设置为静默所有抛出的错误。

为此,请确保您的 php 设置有

ini_set('display_errors', 'On');
error_reporting(E_ALL);
于 2013-06-08T22:32:15.107 回答
-1

如果您正在寻找快速而肮脏的调试技巧,那么您可以从控制器/回调函数中查看 var_dump任何变量(例如, )。$_POST

于 2013-06-08T22:37:08.167 回答