2016-07-09 10 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하려고 :

$string = $_POST['mystring']; 
echo $string; 
: PHP에서

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); 

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) "...."을 얻을 때. 태그를 제거했는데 실제로 태그가 문제입니다. 작동하지 않는 var_dumb 외에 다른 해결책이 있습니까? – JORd

+0

이걸 찾았습니다. [link] http://stackoverflow.com/questions/6817262/how-to-display-html-tags-as-plain-text 그러면 렌더링이 완료됩니다. 시간 내 주셔서 감사합니다 – JORd

관련 문제