Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax无法捕获Pusher实时事件_Php_Html_Ajax_Real Time_Pusher - Fatal编程技术网

Php Ajax无法捕获Pusher实时事件

Php Ajax无法捕获Pusher实时事件,php,html,ajax,real-time,pusher,Php,Html,Ajax,Real Time,Pusher,我已经做了一个推送消息演示系统的基础上的一本书读。我创建了3个文件,test.html、test.js和post.php。当我单击submit时,ajax不会捕获它并阻止它刷新。 我检查了Pusher日志,php消息与值一起发送。我相信错误在test.js中。下面是代码 Test.js (function($){ var pusher= new pusher('bab47e76c61c0af0818a'), channel = pusher.subscribe('exercise-3

我已经做了一个推送消息演示系统的基础上的一本书读。我创建了3个文件,test.html、test.js和post.php。当我单击submit时,ajax不会捕获它并阻止它刷新。 我检查了Pusher日志,php消息与值一起发送。我相信错误在test.js中。下面是代码

Test.js

(function($){


var pusher= new pusher('bab47e76c61c0af0818a'),
    channel = pusher.subscribe('exercise-3-2);

channel
   .bind(
'send-message', function( data ) {
var cont= $('#messages');

cont.find('.no-messages').remove();


$('<li>')
    .html(data.msg)
.appendTo(cont);
}
);




$('form').submit(function(){
$.post('post.php', $(this).serialize());

$('#message').val('').focus();

return false;

});


})(jQuery);
post.php

<?php

ini_set('display_errors', 1);
error_reporting(E_ALL);

require_once 'Pusher.php';

$key = 'bab47e76c61c0af0818a';
$secret = 'PRIVATEINFO';
$app_id = 'PRIVATEINFO';

$pusher=new Pusher($key, $secret, $app_id);

if (isset($_POST['name']) && isset($_POST['message']))
{
$data =array(
    'name'=> htmlentities(strip_tags($_POST['name'])),
     'msg'=> htmlentities(strip_tags($_POST['message'])),
  );

$pusher->trigger('exercise-3-2', 'send-message', $data);
}
和test.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test!</title>
</head>
<body>
<header>
Testing Pusher!
</header>

<section>
<form method="post" action="post.php">
<label>
NAME:
<input type="text" name="name" 
placeholder="i.e. John" />
</label>
<label>
Message:
<input type="text" name="message" 
id="message" value="Hey!" />
</label>
<input type="submit" value="send" />
</form>
</section>
<aside>
<h2> Messages!</h2>
<ul id="messages">
<li class="no-messages"> no messages yet</li>
</ul>
</aside>
<script src="http://js.pusher.com/2.2/pusher.min.js"></script>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="test.js"></script>

<script>

</script>
</body>
</html>

如果在上面的代码中包含格式设置,您很可能会得到更好的响应,因为其中包含大量的格式设置。我建议使用and作为旁注,看起来您正在覆盖JavaScript中的pusher变量。$.ajax调用也没有.success或.fail回调,因此您永远无法捕获来自PHP的响应。嗯,我把它放进了格式链接。但当我尝试发布时,我总是无法格式化为代码