我正在尝试使用以下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'];
?>
答案 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="<html><body> ... " 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();