Ler*_*ica 0 javascript php json
我想使用eval()执行作为JSON一部分的任何JavaScript函数,但显然我做不到,并且无法确定错误/ s的确切位置.我正在使用两个非常简单的文件,只是为了尝试 - 第一个是index.php,它是:
<!DOCTYPE html>
<html>
<head>
<title>Simple form sending and receiving a JSON object to/from PHP</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var data =
{
"sales": [
{ "firstname" : "John", "lastname" : "Brown" },
{ "firstname" : "Marc", "lastname" : "Johnson" }
] // end of sales array
}
var dataString = JSON.stringify(data);
$.post('simpleformSubmi.php', { data: dataString}, showResult, "text");
});
function showResult(res)
{
var data = eval('(' + res + ')');
$("#fullresponse").html("Full response: " +data);
}
</script>
<div id="fullresponse"></div>
</head>
<body>
Run Code Online (Sandbox Code Playgroud)
第二个是simpleformSubmi.php:
<?php
$logFile = 'logFile';
$res = json_decode(stripslashes($_POST['data']), true);
$arr = "function(){alert('Hi')}";
echo json_encode($res);
echo json_encode($arr);
Run Code Online (Sandbox Code Playgroud)
所以我期望在执行echo json_encode($ arr)之后; 得到并警告,但我得到一个错误,并在Firebug控制台显示错误"缺少"在parenthetica".所以问题是 - 如何以这种方式发送有效的JS函数并正确执行它?
谢谢Leron
为什么你要json_encode$ arr.您可以将其作为字符串echo $arr和eval('(' + res + ')()')JavaScript返回(请注意()JS中的执行函数).你可能需要删除echo json_encode($res)它才能让它现在正常工作.
| 归档时间: |
|
| 查看次数: |
1465 次 |
| 最近记录: |