php dosent回显输入的正确值

时间:2016-07-09 13:54:11

标签: php jquery

我想在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页面中发布它时,我只得到了值的一部分,实际上我只得到变量的值,而不是手动值。

1 个答案:

答案 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'] );