2015-11-05 74 views
-1

讓我們直接跳到問題中。將echo'ing設置爲html值字段時出現奇怪的PHP回聲行爲

我有一個數據庫條目,它是列name1中的字符串,看起來f.e.像這樣:COMPANYNAME DIVADAY

該字符串的主要屬性是它主要是由兩個或多個用逗號分隔的單詞組成的字符串。

現在,當我打印這些條目出這樣的:

echo ("<td><input id=\"firmenname1\" type=\"text\" value=".$row['firmenname1']." /></td>"); 

現在我檢查結果在瀏覽器中,體驗一些有趣的輸出。輸入值設置爲字符串中第一個字。因此,此示例中的值看起來像COMPANYNAME。 當我檢查元素來檢查它是否在太空中迷路了還是讓我看到:

<input type="text" value="COMPANYNAME" DIVADAY /> 

不知何故價值得到屬性得到正確後或每一個逗號之前,因此整個名稱不能被視爲關閉由用戶。

Uppon檢查我的數據庫中的字符串我真的不知道是否有隱藏的字符導致這個問題。

回答

1

嘗試回聲圍繞價值屬性

echo "<td><input id='firmenname1' type='text' value=".$row['firmenname1']." /></td>"; 
+0

哦,上帝......我怎麼會錯過這個。感謝:9 –

1

值屬性缺少引號。

echo ("<td><input id=\"firmenname1\" type=\"text\" value=\"{$row['firmenname1']}\" /></td>"); 

您也可以嘗試將addslashes添加到該值。

$firmenname1 = addslashes($row['firmenname1']) 
echo ("<td><input id=\"firmenname1\" type=\"text\" value=\"{$firmenname1}\" /></td>"); 
+0

哦,上帝......我怎麼會錯過這個。感謝:9 –

1

你忘了周圍型數據庫輸出報價: 你應該寫:

echo ("<td><input id=\"firmenname1\" type=\"text\" value=\"".$row['firmenname1']."\" /></td>"); 

在編寫程序的方式,HTML代碼變成了: 和瀏覽器解析COMPANYNAME作爲值和divaday作爲輸入元素的單獨屬性。如果你在「COMPANYNAME DIVADAY」周圍添加引號,你應該看到正確的結果。以這種方式

+0

哦,上帝......我怎麼會想念那個。感謝:9 –

1

嘗試增加報價:

echo ("<td><input id=\"firmenname1\" type=\"text\" value=\"".$row['firmenname1']."\" /></td>"); 
+0

哦,上帝......我怎麼會錯過這個。謝謝:9 –

0

爲了避免混淆,我通常轉換我要使用到的變量數組項,即$ firmenname1 = $ row ['firmenname1'];這樣你可以在使用前清理和格式化數據。額外的好處是你不必擔心正確的引號和反斜槓