簡體   English   中英

回聲句子中出現引號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM