执行脚本 AJAX returns
Execute scripts AJAX returns
提示:"you could simple send an json object / array from php to js, and execute every entry like "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>
当我在 index.php 的底部生成这些脚本的 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);
});
但还有一个 shorthand method:
$.getScript('php/main.php?elements=' + 1, function () {
// script loaded
});
请阅读文档,有一些注意事项!
这样做:
在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);
})
});
提示:"you could simple send an json object / array from php to js, and execute every entry like "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>
当我在 index.php 的底部生成这些脚本的 PHP 代码时,所有 js 函数都被正确调用。由于这个
您可以将结果附加到您的页面:
$.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);
});
但还有一个 shorthand method:
$.getScript('php/main.php?elements=' + 1, function () {
// script loaded
});
请阅读文档,有一些注意事项!
这样做:
在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);
})
});