-1

我有一个 html 按钮,它有一个 onclick 方法,它触发了 ajax 发生的一些事情。但是,通过函数传递的变量在 php.ini 中。这是代码:

html/PHP

#Do not mind the first forward slash#
/<button type="submit" 
    name="follow_button" 
    onclick= <?php 
        echo "'follow_alert(" . $pdo . ", " . $_SESSION['user_id'] . ", " . $value['user_id'].");'" 
        ?> 
>Follow
</button>

两个变量 $_SESSION['user_id'] 和 $value['user_id'] 都通过了。我已经尝试了代码,它在没有 $pdo 的情况下也可以工作,但问题是我需要调用 $pdo 才能在我的 php 函数中访问它,该函数从我的 mysql 表中获取数据。

这是JS。

JS

function follow_alert(pdo, user_id, following_id) {
    var ajax = ajaxRequest();
    ajax.onreadystatechange = function() {
        if (ajax.readyState === 4) {
            alert(ajax.responseText);
        };
    };
    ajax.open('GET', 'function.php?pdo='+pdo+'&user_id='+user_id+'&following_id='+following_id, true);
    ajax.send(null);
};

我的问题是:我不断收到“可捕获的致命错误:PDO 类的对象无法转换为字符串”错误。当我在所有其他函数中将 $pdo 作为参数传递时,它们工作正常。问题似乎是我正在通过一个字符串传递它以运行 onclick(); 至少我是这么认为的。

有什么想法吗?整个上午我都在为这件事绞尽脑汁!

4

1 回答 1

1

您不能将资源(如 PDO 实例)传递给 JavaScript 函数。在呈现 HTML 时它并不存在。您需要在 JavaScript 函数调用的 PHP 脚本中创建 PDO 实例。

于 2013-07-17T20:02:53.860 回答