我有一个带有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();至少这是我认为的。
有什么想法?我整个上午一直在为此烦恼!
答案 0 :(得分:1)
您无法将资源(如PDO实例)传递给JavaScript函数。它在呈现HTML时不存在。您需要在JavaScript函数调用的PHP脚本中创建PDO实例。