![](/img/trans.png)
[英]How to get JavaScript variable from ajax loaded page with jQuery?
[英]How to get a variable from Ajax with Javascript
我在下面添加了名为checkMessages.php的ajax脚本:
$user = $system->getUserInfo($_SESSION['user_id']);
$checkmes = $db->query("SELECT * FROM notifications WHERE receiver_id='".$user."' AND sent='0'");
$checkmes = $checkmes->fetch_object();
if(!empty($checkmes)) {
$checkmes = true;
} else{
$checkmes = false;
}
以及JavaScript即时通讯试图创建:
function checkMessages() {
$.get("'.$system->getDomain().'/ajax/checkMessages.php, function(data){
$checkmes });
if $checkmes == true {
refreshChat();
}
}
window.setInterval(function(){
checkMessages();
}, 1000);
我想做的是以下。 checkMessages.php检查是否有新消息,并且我进行了checkMessages()
来执行功能checkMessages()
并checkMessages()
调用ajax脚本。
因此,如果有新消息,则变量$checkmes
设置为true。 并且,如果为true,则javascript应执行其他函数refreshChat()
。
但是我的问题是,我如何从带有JavaScript的checkMessages.php中获取变量$ checkmes,如果它是正确的,则读取它吗?
我一直在寻找高低,但我不知道。 我最近开始学习编码,所以我希望有人可以教我如何做到这一点。 我要感谢每个事先提供帮助的人。
//checkMessages.php
$user = $system->getUserInfo($_SESSION['user_id']);
$checkmes = $db->query("SELECT * FROM notifications WHERE receiver_id='".$user."' AND sent='0'");
$checkmes = $checkmes->fetch_object();
if(!empty($checkmes)) {
echo true;
}else{
echo false;
}
//javascript
function checkMessages() {
$.get($system->getDomain()+'/ajax/checkMessages.php', function(data){
if(data == 'true'){
refreshChat();
}
});
}
window.setInterval(function(){
checkMessages();
}, 1000);
//假设checkMessages.php是一个不同的文件
为了回答您的问题,为了能够获取$checkmes
变量,您必须在php中进行echo
,以便您的AJAX请求可以读取您的数据(即,是对还是错),如下所示:
$user = $system->getUserInfo($_SESSION['user_id']);
$checkmes = $db->query("SELECT * FROM notifications WHERE receiver_id='".$user."' AND sent='0'");
$checkmes = $checkmes->fetch_object();
if(!empty($checkmes)) {
$checkmes = true;
} else{
$checkmes = false;
}
echo $checkmes;
然后,由于@u_mulder注意到您的php字符串连接似乎有些不正确以及没有echo
,请确保您使用的是php标签,我建议您这样做:
function checkMessages() {
$.get("<?php echo $system->getDomain().'/ajax/checkMessages.php' ?>", function(checkmes) {
// Here checkmes is a JavaScript variable and contains the data echoed from checkMessages.php
if (checkmes == "true") {
refreshChat();
}
});
window.setInterval(function(){
checkMessages();
}, 1000);
首先,您需要对php脚本进行一些更改:
$user = $system->getUserInfo($_SESSION['user_id']);
$message = false;
$checkmes = $db->query("SELECT COUNT(1) AS CNTMESSAGES FROM notifications WHERE receiver_id='".$user."' AND sent='0'");
$checkmes = $checkmes->fetch_object();
//check the count value
if($checkmes->CNTMESSAGES > 0) {
$message= true;
}
//Json response
echo json_encode($message);
在您的Javascript中:
function checkMessages() {
var myUrl = '<?php echo $system->getDomain(); ?>';
myUrl + = '/ajax/checkMessages.php';
$.get(myUrl, function(data){
if(data){
refreshChat();
}
});
}
window.setInterval(function(){
checkMessages();
}, 1000);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.