如何传递javascript回调响应到php

how to pass javascript callback response into php

本文关键字:php 响应 回调 何传递 javascript      更新时间:2023-09-26

如何传递回调javascript响应到PHP,如果让我们说我在一个PHP文件?下面是一个示例代码片段,例如test.php

<html>
<head>
<script>
var _somestuff = _somestuff || [];
            (function () {
                _somestuff.push(['id', blahblah], ['setApiKey',   "blahblah"] 
                );
            var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
            g.type = 'text/javascript';
            g.defer = true;
            g.async = true;
            g.src = 'blahblah.js';
            s.parentNode.insertBefore(g, s);
        })();

             function myCallback(response)
            {
                if (response !== undefined) {
                    var data = JSON.parse(response);
                    var item_ids = data.items;
                    console.log(item_ids);
                }
            }  
   _somestuff.push(['blahblah',"001124","blahblah","myCallback"]);
</script>
</head>
<body>
</body>
</html>  

我想要发生的是,显示数据或item_id内的html正文使用php..怎么做呢?,我在一个单页,我不想使用ajax或其他的,这是可能的吗?

如果PHP和你的JS在同一个页面

  • 你需要使用AJAX(发送POST到同一页面)
  • 为了使PHP响应一些数据,但不是与整个文档相同,您需要将exit;放在PHP代码的最后一行
  • (你的PHP代码必须在同一文档的顶部)
伪:

<?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
       if(isset($_POST["someData"])) {
           // Do some stuff with someData
           // return /*anything you need*/; // this return will be collected by the AJAX success
       }
    }
    exit; // Prevents the AJAX to return the whole document (with HTML etc)
?>
<html>
<head>
<script>
     // JS AJAX POST someData TO PHP (use the same url)
     // on success use the returned data by the PHP's `return`
</script>
</head>
<body>
</body>
</html>  

我通过将myCallback函数分配给像

这样的变量来解决我的问题
var a = function myCallback(response)
            {
                if (response !== undefined) {
                    var data = JSON.parse(response);
                    var item_ids = data.items;
                    console.log(item_ids);
                }
            };

然后将变量传递给

_somestuff.push(['blahblah',"001124","blahblah",a]);

然后在myCallback if条件中,我只是在那里操作html并加载数据响应:)