2016-07-09 74 views
1

我想在jQuery中連接一個字符串,但是當我發佈字符串時,我只能看到mystringg的一部分。php dosent回顯輸入的正確值

我的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"; 

我嘗試Concat的像一個字符串:

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']); 
+0

當我這樣做時,我得到一個消息字符串(260)「....」0。我已經刪除了標籤,確實標籤是問題所在。除var_dumb之外還有其他解決方案是否無效? – JORd

+0

我發現這個:[link] http://stackoverflow.com/questions/6817262/how-to-display-html-tags-as-plain-text和呈現完成。感謝您的時間 – JORd