我的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来回复它。
谢谢!
答案 0 :(得分:1)
在\/
标记中嵌入JSON时,允许<script>
会有所帮助,这不允许在字符串内部</
。 JSON: why are forward slashes escaped?
您可以将选项设置为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
答案 1 :(得分: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"]
首先通过字符串化然后解析它来试图找出它的工作原理。