【发布时间】:2019-04-20 10:38:06
【问题描述】:
我想在使用 Codeigniter 从 CURL 请求中调用 javascript 函数。基本上我想在数据库中输入数据时在浏览器中触发通知。因此,当数据输入时,我使用 CURL 请求并加载一个页面,并且在该页面中我想调用触发通知功能。我在下面尝试过,但没有成功。
Curl 请求的 PHP 代码
$post = $_POST;
$url = str_replace('/ws/'.APP_VERSION,'',site_url('mydomain/notification_update'));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close ($ch);
另一个基于 CURL 请求调用的 PHP 页面
public function notification_update() {
$post = $_POST;
$this->load->view('header', $post, FALSE);
}
查看页面
<script type="text/javascript">
var w_type = '<?= (isset($w_type) && $w_type == 'for_window_noty') ? $w_type : '' ?>';
console.log('w_type', w_type);
if(w_type) {
console.log('succes test');
}
</script>
我这里只有用于查看页面的 javascript 代码。
注意:我的帖子参数是w_type = for_window_noty
【问题讨论】:
-
php 完成页面输出后脚本 w_type var 得到什么值?
-
我想在收到 curl 请求时生成通知,所以我会在收到 curl 请求时调用另一个 ajax。我知道我可以通过在某个时间间隔调用 ajax 来做到这一点,但它会给服务器带来太多负载。所以我只想在实际数据进入数据库时调用 ajax。
-
@James 值就像 w_type = for_window_noty
-
听起来你想设置websockets来防止ajax轮询负载
-
@charlietfl 是的,我可以使用套接字,但使用 node.js 很容易,但我认为使用 PHP 的套接字并不是那么容易。
标签: javascript php jquery codeigniter php-curl