从Ajax运行PHP PHP

时间:2014-06-14 09:52:27

标签: javascript php ajax

是否可以使用Ajax调用从PHP运行JavaScript函数。

例如,如果我在php中有一个带有ajax调用的html页面。 ajax帖子被发送到php引擎:

的index.php

<script>
  Ajax.post('http://example.com/ajaxEngine.php', { data: "someData" });
</script>

然后在PHP引擎中,我可以运行这样的JavaScript函数:

ajaxEngine.php

<?php

$data = $_POST['data'];

?>
<script type="text/javascript">
   var php_var = "<?php echo data ?>";
   function doSomething(php_var) {
   // do something with data 
   }
</script>

最后,如果JavaScript函数需要返回一个值,那么你将如何将其转移回php?我可以发布到同一页面然后用PHP作为变量吗?

2 个答案:

答案 0 :(得分:1)

简短回答:不。

您在ajaxEngine.php中的代码只会输出该javascript片段。这将被转移回您的页面,因此您可以将其插入脚本标记或评估它,如果您希望它执行。但这将发生在客户端而不是在您的服务器上。但是,该脚本将具有来自php的动态数据。所以如果这就是你需要的一切,那就会这样。

注意:那不会隐藏你的脚本。任何客户都可以看到它。

答案 1 :(得分:0)

尝试此功能

function includetext(text,onlyone)
{
    var d=document.createElement('script');
    if(onlyone)
    {
        var ds=document.getElementById('onlyonesscript');
        if(ds)
            removeElement(ds);
        d.id='onlyonesscript';
    }
    d.innerHTML=text;
    document.body.appendChild(d);
}

text - 从ajax返回脚本文本。

onlyone仅用于一个脚本节点,这对您有帮助。

ajax Engine.php

<?php

$data = $_POST['data'];

?>
var php_var = "<?php echo data ?>";
// do something with data