我想在jquery中连接一个字符串,但是当我发布字符串时,我只看到mystringg的一部分。
我的HTML是:
<input type="text" style="display:none" name="mystring" id="mystring" value=""/>
我有一些变数:
var ti="ti";
var low="low";
var moderate="moderate";
var high="high";
var title="title";
我尝试连接一个字符串,如:
var mystringg="";
mystringg+= "<\n"+ti+">";
mystringg+= "\n<LOW> "+low+" </LOW> ";
mystringg+= "\n<MODERATE> "+moderate+" </MODERATE> ";
mystringg+= "\n<HIGH> "+high+" </HIGH> ";
mystringg+="\n</"+title+">";
alert(mystringg); // here print the right value of the string
$('#mystring').val(mystringg);
在php中:
$string = $_POST['mystring'];
echo $string;
当我提醒mystringg时,我得到正确的字符串。 但是当我在另一个php页面中发布它时,我只得到了值的一部分,实际上我只得到变量的值,而不是手动值。
答案 0 :(得分:1)
您将获得完整的值。您不这么认为的原因是因为您将它们包装在标签中,尽管不是标准的HTML标签。
如果你var_dump($_POST['mystring']);
,你会看到:
string '<ti><LOW> low </LOW> <MODERATE> moderate </MODERATE> <HIGH> high </HIGH> </title>'
所以,完整的价值就在那里。
但是 - 当你查看它的echo
时(就像你的代码一样),标签被呈现为HTML标签(因此不会显示),所以看起来像这样:
low moderate high
但是,如果您查看来源,您会发现其实就是全部:
<ti><LOW> low </LOW>
<MODERATE> moderate </MODERATE>
<HIGH> high </HIGH>
</title>
如果你想在回复它们时看到“标签”,那么使用htmlspecialchars进行回声,如下所示:
echo htmlspecialchars( $_POST['mystring'] );