[英]PHP - Submit button and Modal Pop-up AJAX on 2 browsers PHP
我是php AJAX编码的新手,我的问题是我有两个浏览器,首先是我想单击“提交”按钮,然后要在其他浏览器上弹出一个模式,因此最终输出将是2个浏览器。 就像聊天系统一样。 但这是不同的,因为我只想要一个按钮和一个弹出模式。
例如,这是我的按钮
<button type="button" class="btn btn-primary">CLICK TO POPUP</button>
我的模态
<div class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Modal body text goes here.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary">Save changes</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
我如何将此模式弹出到其他本地浏览器
首先,我们在php文件中编写侦听器。 然后编写一个javascript程序,使监听器可以点击并获取反馈。 我正在发送与我们使用javascript连接的套接字e'getOpenPopUp'消息。 php端的套接字在验证之后将openPopUp
消息发送给所有客户端。 在javascript端弹出窗口中会收到此消息。 我的英语一点也不好。 对不起,我不知道。
socket.php
Ratchet Class
棘轮
<?php
require __DIR__.'/vendor/autoload.php';
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
class Application implements MessageComponentInterface {
protected $clients;
public function __construct() {
$this->clients = new \SplObjectStorage;
}
public function onOpen(ConnectionInterface $conn) {
$this->clients->attach($conn);
}
public function onMessage(ConnectionInterface $from, $msg) {
if ( $msg === 'getOpenPopUp' ) {
foreach ($this->clients as $client) {
$client->send('openPopUp');
}
}
}
public function onClose(ConnectionInterface $conn) {
}
public function onError(ConnectionInterface $conn, \Exception $e) {
}
}
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Application()
)
),
8080
);
$server->run();
App.js
- WebSocket
MDN编写WebSocket客户端应用程序
var socket = new WebSocket('ws://localhost:8080');
var button = document.getElementById('button');
button.addEventListener('click', function() {
console.log('click')
socket.send('getOpenPopUp');
});
socket.onmessage = function(e) {
console.log(e)
if ( e.data === 'openPopUp' ) {
UIkit.modal.confirm('UIkit confirm!');
}
}
ajax还控制着一种更简单的方法,该方法每秒将操作记录在数据库中一次,如果需要在popUp中显示,则popup会与来自ajax的数据一起显示。
但不是强烈推荐的方法
点击按钮
$.ajax({ url: "saveClickButton.php" })
setTimeout(function() {
$.ajax({ url: 'isClickButton' }).done(function(data) {
if ( data === "true" ) {
// Open Pop Up
}
});
}, 1000)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.