在onclick()触发的函数中无法传递$ pdo作为参数

时间:2013-07-17 20:01:46

标签: php ajax pdo onclick

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

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);
};

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

有什么想法?我整个上午一直在为此烦恼!

1 个答案:

答案 0 :(得分:1)

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