[英]Quote marks appearing in echo sentence
我正在使用PHP構建網頁。 我有一個帶有多個按鈕的桌子。 我使用以下代碼在for循環中構建按鈕:
echo "<tr><td><input type='button' value='".$row['Descripcion']."'";
echo "onclick=EliminarHashTag('".$row['ID']."','";
echo $row['Descripcion'];
echo "','Norma','".$Codigo."','".$Organizacion."')> </td></tr>";
只要我的變量是由單個單詞組成的字符串,這一切都可以正常工作。例如,如果它是$row['Descripcion']="manometros"
,(不帶空格的字符串),則回顯將輸出以下內容:
<input type="button" value="Manometros" onclick="EliminarHashTag('14','Manometros','norma','k-300','pdvsa')="">
但是,如果我的變量是由帶有空格$row['Descripcion']="Criterios Generales"
的字符串組成的,則echo將在空格中輸出引號,從而弄亂了javascript函數調用語法,從而使代碼無法正常工作(Criterios”將軍)。
<input type="button" value="Criterios Generales" onclick="EliminarHashTag('14','Criterios" generales','norma','k-300','pdvsa')="">
我在php.net上閱讀了echo文檔,但是我沒有提到這個問題。 難道我做錯了什么?
如果您不引用屬性,則屬性值在第一個空格或標記的結尾處結束。
在onclick周圍添加引號...
echo " onclick=\"EliminarHashTag('".$row['ID']."','";
^^ ^^
和
echo "','Norma','".$Codigo."','".$Organizacion."')\"> </td></tr>";
^^
現在,如果任何值都帶有雙引號,則需要將其轉義為html標題。 否則,您需要將單身換成雙身。
您的HTML無效,調試工具(例如firebug和chrome開發人員工具)會嘗試對其進行更正以顯示正確的domtree。
您不僅會丟失onclick
屬性的右引號,而且還會通過在onclick函數參數中使用相同類型的引號來破壞封裝:
echo '<tr><td><input type="button" value="'.$row['Descripcion'].'"';
echo 'onclick="EliminarHashTag(\''.$row['ID'].'\',\'';
echo $row['Descripcion'];
echo '\',\'Norma\',\''.$Codigo.'\',\''.$Organizacion.'\')"> </td></tr>';
嘗試用反斜杠轉義引號:
echo "onclick=EliminarHashTag('".$row['ID']."',\"";
echo $row['Descripcion'];
echo "\",'Norma','".$Codigo."','".$Organizacion."')> </td></tr>";
我將您的變量前后的'
更改為\\"
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.