如何使json_将返回的对象编码为javascript变量

如何使json_将返回的对象编码为javascript变量,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我将向ajax调用返回一个json\u encode对象。首先,有没有更好的方法?这是否需要json编码? 我的问题的根本。当我试图使键成为变量时,它抛出一个“未定义错误”。此行:var displayTriggers=trigger\u行 有人知道我做错了什么吗 PHP: 应该做到这一点从success:function(data)获取一个名为data的变量中返回javascript的数据,因此尝试使用数据。而不是触发器行简单的调试思想。所有浏览器都带有调试器(F12)。加载它并在if(dat

我将向ajax调用返回一个
json\u encode
对象。首先,有没有更好的方法?这是否需要json编码?

我的问题的根本。当我试图使键成为变量时,它抛出一个“未定义错误”。此行:
var displayTriggers=trigger\u行

有人知道我做错了什么吗

PHP:


应该做到这一点

success:function(data)
获取一个名为
data
的变量中返回javascript的数据,因此尝试使用
数据。
而不是
触发器行
简单的调试思想。所有浏览器都带有调试器(F12)。加载它并在
if(data==null){
上设置断点,然后检查对象
data
实际上是什么contains@RiggsFolly这不是一个断点吗?
警报(数据)
data==null
语句中?它会显示数据,并在执行时停止代码的执行。但由于您不在调试器中,您无法决定逐行检查代码。例如,这也是发现我们所有人的小woopsies的好方法make@Paul顺便说一句,警报(数据)
数据===null
是无意义的,因为它会警告null;-)如果您想调试db php,只需返回编码的json,如:
“error”=>true,“message”=>“…”
并在js中检查
if(data.error)
Gotcha!我甚至没有想到这一点。我曾经解析数据并使用obj,所以只是习惯了这个方法。Gotcha!下次只需检查注释掉的
console.log(data)
的控制台输出,当您将dataType选项设置为json时,它会自动将字符串转换为json(json已经是json对象)“字符串化json”只是文本)
try {
    $con = getConfig('pdo');
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql_triggers = "
        SELECT *
        FROM triggers
    ";
    $triggers_stmt = $con->prepare($sql_triggers);
    $triggers_stmt->execute();
    $triggers_rows = $triggers_stmt->fetchAll(PDO::FETCH_ASSOC);
    $triggers_arr = array();
    foreach ($triggers_rows as $triggers_row) {
        $trigger_id = $triggers_row['id'];
        $trigger_title = $triggers_row['trigger_name'];
        $trigger_setting = $triggers_row['setting'];
        $trigger_user = $triggers_row['user_id'];
        $trigger_placement = $triggers_row['placement'];
        $trigger_date = $triggers_row['date_changed'];
        $trigger_active = ( $trigger_setting == '1' ) ? ' active' : '';
        $html = '';
        $html .= '<div class="triggerRow" data-placement="'.$trigger_placement.'">';
        $html .= '<div class="triggerRowLeft">';
        $html .= '<div class="triggerTitle">' . $trigger_title . '</div>';
        $html .= '<div class="triggerText">' . $trigger_date . '</div>';
        $html .= '<div class="triggerText">' . $trigger_user . '</div>';
        $html .= '</div>';
        $html .= '<div class="triggerRowRight">';
        $html .= '<div class="triggerButton' . $trigger_active . '"></div>';
        $html .= '</div>';
        $html .= '</div>';
        $data = array('html' => $html);
        $triggers_arr[] = $data;
    }
    echo json_encode(['trigger_rows' => $triggers_arr]);
}
catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
$wrapper = $('#triggerCont');
$.ajax({
    url: 'php/triggerSelect.php',
    dataType: 'json',
    success: function (data) {
      //console.log(data);
        if (data == null) {
            alert("Unable to retrieve triggers!");
            alert(data);
        } else {
            var displayTriggers = trigger_rows;
            $wrapper.empty();
            $(displayTriggers).each(function() {
                $wrapper.append(this.html);
                //console.log(this.html);
            });
        }
    },
    error: function (xhr, textStatus, errorThrown) {
        alert(textStatus + " | " + errorThrown);
        alert('There are currently no project images for this selection');
    }
});
var displayTriggers = data.trigger_rows;