Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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
Javascript 执行脚本AJAX返回_Javascript_Php_Ajax_Return_Alert - Fatal编程技术网

Javascript 执行脚本AJAX返回

Javascript 执行脚本AJAX返回,javascript,php,ajax,return,alert,Javascript,Php,Ajax,Return,Alert,提示:“您可以简单地将一个json对象/数组从php发送到js,并执行每个条目,如“update_match('1');“使用eval()函数,请停止以这种方式发送js代码”-Lucian Depold 在index.php中,我有以下代码,在文档准备就绪时执行: $.post('php/main.php', {elements: 1}, function(return_msg) { alert(return_msg); }); 我得到的响应是一堆脚本,正如预期的那样,带有预期的值。

提示:“您可以简单地将一个json对象/数组从php发送到js,并执行每个条目,如“update_match('1');“使用eval()函数,请停止以这种方式发送js代码”-Lucian Depold


在index.php中,我有以下代码,在文档准备就绪时执行:

$.post('php/main.php', {elements: 1}, function(return_msg) {
    alert(return_msg);
});
我得到的响应是一堆脚本,正如预期的那样,带有预期的值。但是,它们不会执行!如何让他们执行

以下是答复:

<script>jsfunction(37069);</script><script>updateTextbox('');</script><script>update_match('1', '19.30 Friday 15/5', '1');</script><script>update_player('1', '1', 'recoba', 'cmf', 'teo', '0', '0');</script><script>update_player('1', '2', 'nesta', 'cb', 'tsoulou', '0', '0');</script><script>update_player('1', '3', 'raul', 'cf', 'striker', '0', '0');</script><script>update_player('1', '4', 'samuel', 'cb', 'mafia', '', '1');</script><script>update_player('1', '5', 'deisler', 'cmf', 'free_kick', '1', '');</script><script>update_player('1', '6', 'ferdinard', 'cb', 'strong', '1', '');</script><script>update_match('2', 'Match 2', '0');</script>
jsfunction(37069);updateTextbox(“”);更新匹配('1','19.30周五15/5','1');更新_播放器('1','1','recoba','cmf','teo','0','0');更新_播放器('1','2','nesta','cb','tsoulou','0','0');更新玩家('1','3','raul','cf','striker','0','0');更新玩家('1','4','samuel','cb','mafia','1');更新球员('1'、'5'、'deisler'、'cmf'、'任意球'、'1'、'');更新球员('1','6','ferdinard','cb','strong','1','';更新_match('2','match 2','0');

当我把生成这些脚本的PHP代码放在index.PHP的底部时,所有的js函数都被正确调用了。由于这个原因,我不得不将代码移动到另一个.php文件。

您可以将结果附加到页面:

$.post('php/main.php', {elements: 1}, function(return_msg) {
    $('body').append(return_msg);
});

代码将被执行,但我不确定这样做是否安全。

AJAX调用传递的日期只是数据或文本。为了将其解释为JavaScript,必须将其附加到dom中

两种方式: 首先,通过直接附加数据:

$.post('php/main.php', {elements: 1}, function(return_msg) {
    alert(return_msg);
    $('body').append(return_msg);
});
但也有一个:

请阅读文档,这里有一些注意事项

这样做:

在PHP中

$arrayOfCalls = array();
$arrayOfCalls[]="update_match('1')";
$arrayOfCalls[]="update_match('2')";

$dummy = array();
$dummy['calls'] =$arrayOfCalls;
echo json_encode($dummy);
在Javascript中

$.post('php/main.php', {elements: 1}, function(return_json) {
    return_json = JSON.parse(return_json);
    return_json.calls.forEach(function(code){
    eval(code);
    })
});

你想让通过ajax返回的js代码运行吗?是的@Dagon,但我想我得到了答案。很好,只需要澄清一下你是否通过ajax发送所有这些“”标记并执行它们???你可以简单地从php向js发送一个json对象/数组,并使用eval()函数执行每个条目,如“update_match('1');”,请停止那样发送js代码谢谢+1表示速记方法。我们不需要在post调用中指定我们发送的数据是JSON格式的吗?发送到php或从php发送到js的数据?您可以将第四个参数指定为JSON,但jquery采用“智能猜测”()。我认为它应该不使用。我让它使用:
$.post('php/main.php',{elements:1},函数(return_json){//console.log(return_json);return_json=json.parse(return_json);return_json.calls.forEach(函数(代码){eval(code);})也许第四个参数也能做到,将其设置为“JSON”。。。
$.post('php/main.php', {elements: 1}, function(return_json) {
    return_json = JSON.parse(return_json);
    return_json.calls.forEach(function(code){
    eval(code);
    })
});