显示$ _POST变量的HTML代码

时间:2016-10-14 19:35:11

标签: javascript php

我正在尝试使用以下JavaScript代码发送html代码:

var htmlTable= $('#granting_result').html();
alert(htmlTable);
$('<form action="tbl_create.php" method="POST"><input type="hidden" name="data" value='+htmlTable+' ></form>').submit();

接收页面tbl_create.php具有以下php代码:

<?php

echo $_POST['data'];

?>

问题是此页面显示为空白页面,但未显示任何内容,但alert(htmlTable);的输出如下: enter image description here

3 个答案:

答案 0 :(得分:2)

你正在建立一个字符串。您正在将HTML插入该字符串中。这意味着你构建的html看起来像

<form><input ... value=<html><body>....

你的value上没有引号,所以你要插入TERMINATES属性的html blob中的第一个空格,将其余的html保留为非法/未知属性。

如果要在属性中嵌入HTML,则必须对其进行html编码

foo = '<form><input ....value="' + encodeHTML(var_with_html) + '">....';
制造

<form><input ... value="&lt;html&gt;&lt;body&gt; ... &quot; etc..." ...

用于编码功能:HTML-encoding lost when attribute read from input field

答案 1 :(得分:2)

创建表单元素本身并将html字符串作为输入的value属性传递,而不是作为属性连接。

然后插入dom并提交

var $input = $('<input>',{type:'hidden', name:'data'}).val(htmlTable);
var $form = $('<form>',{method:'post', action:'tbl_create.php'});
$form.append($input).appendTo('body').submit();

答案 2 :(得分:-1)

尝试使用加载javascript方法而不是$('#granting_result').html();