0

我的 PHP 脚本正在发回一个数组:

$currentStatus = ( isset( $status ) ) ? "1" : "0";
$html = "<tr><td>" . $email . "</td><td>" . ( ( $status->type == 0 ) ? "View Only" : ( ( $status->type == 1 ) ? "View & Mark" : "View, Mark & Edit" ) ) . "</td><td>Invited</td></tr>";

echo json_encode( array( $html, $currentStatus ) );

然后我的 jquery 将其附加到表中:

...
success: function( result ) {

   var resultArray = eval( result );

   $( "#myTable tr:last").append( resultArray[0] );
   ...
}

问题是,当它打印时,它会打印以下额外的标记:

name@email.com<\/td>    View Only<\/td> Invited<\/td><\/tr>","1"]

如果我只回显它附加到表格的 HTML 就好了,但我不能这样做,因为我也需要返回 $currentStatus 来处理它。

谢谢!

4

2 回答 2

1

允许\/在标签中嵌入 JSON 时会有所帮助<script>,这不允许</在字符串中。JSON:为什么正斜杠转义?

您可以将选项设置为json_encode

echo json_encode(array( ('<tr><td>test@test.com</td><td>Invited</td></tr>')), JSON_UNESCAPED_SLASHES| JSON_HEX_TAG);

JSON_UNESCAPED_SLASHES - available from 5.4.0
JSON_HEX_TAG - from 5.3.0
于 2013-11-12T22:31:49.600 回答
0

我已经使用了您在控制台的评论中添加的结果。我的代码看起来像这样,它似乎工作:

var resultArray = ["<tr><td>name@email.com<\/td><td>View Only<\/td><td>Invited<\/td><\/tr>","1"];
var resultStringify = JSON.stringify(resultArray);
var resultParse = JSON.parse(resultStringify);

resultParse //Result: ["<tr><td>name@email.com</td><td>View Only</td><td>Invited</td></tr>", "1"]

试图通过首先对其进行字符串化然后对其进行解析来弄清楚它为什么起作用。

于 2013-11-12T22:14:44.263 回答