2014-12-11 51 views
-2

再次感謝您提前解答類似問題。我有一個更類似,但我認爲更復雜。PHP轉義語法再次

它看起來像這樣的HTML:

<input type="button" class="formButtonDeleteButton" value="" onclick="document.getElementById('WADADeleteRecordID').value=<?php echo($row_WADAactivities2['ActivityID']); ?>;document.getElementById('WADADeleteRecordName').innerHTML='<?php echo($row_WADAactivities2['Activity']); ?>';document.getElementById('deleteBox').style.display = 'block';document.getElementById('deleteMessage').style.display = 'table';" /> 

我得到這麼遠呢,但只是得到一個有點失落,例如:

echo '<input type="button" class="formButtonDeleteButton" value="" onclick="document.getElementById('WADADeleteRecordID').value=' . rawurlencode($row_WADAactivities2['ActivityID']) . ;document.getElementById('WADADeleteRecordName').innerHTML=' . rawurlencode($row_WADAactivities2['Activity']);';document.getElementById('deleteBox').style.display = 'block';document.getElementById('deleteMessage').style.display = 'table';" \"/>"; 

這是相當多的東西最後一位我一直在尋找需要整理的東西。

再次感謝。

+2

您究竟想要什麼?早些時候有類似的問題*整理*如何?我懷疑我是唯一一個在這裏感到困惑的人 – 2014-12-11 02:26:55

+0

*你是什麼意思*「它看起來像這個HTML」*?正如你在*查看頁面源*中看到的一樣?這些'<?php'標籤來自哪裏? – Phil 2014-12-11 02:28:55

+0

將其分解爲多行和多個功能。 – JustGage 2014-12-11 02:30:23

回答

0

你需要逃避所有的單引號字符串中的單引號字符:

echo '<input type="button" class="formButtonDeleteButton" value="" onclick="document.getElementById(\'WADADeleteRecordID\').value=' . rawurlencode($row_WADAactivities2['ActivityID']) . ;document.getElementById(\'WADADeleteRecordName\').innerHTML=' . rawurlencode($row_WADAactivities2['Activity']);';document.getElementById(\'deleteBox\').style.display = \'block\';document.getElementById(\'deleteMessage\').style.display = \'tabl\e';" \"/>"; 

我強烈反對寫聯JavaScript這樣的長字符串。將它移出Javascript功能,並使用onclick="functionName(...)"

0

看到了,你應該總是決定是否需要回應這樣的事情,或者直接在代碼的視圖部分使用像<?=$someVar?>這樣的短標籤。爲什麼?因爲它更容易處理不逃脫的引號:D無論如何,你應該選擇單引號還是雙引號的方式是,如果你打算在字符串中沒有任何變量,使用單引號..如果你正在計劃關於在字符串中使用變量,請使用雙引號以避免必須進行連接。由於您使用了單引號,因此您不必逃脫雙打,但是您必須避開其他單引號:

echo '<input type="button" class="formButtonDeleteButton" value=""  onclick="document.getElementById(\'WADADeleteRecordID\').value=' . rawurlencode($row_WADAactivities2['ActivityID']) .' ;document.getElementById(\'WADADeleteRecordName\').innerHTML=' . rawurlencode($row_WADAactivities2['Activity']).';document.getElementById(\'deleteBox\').style.display = \'block\';document.getElementById(\'deleteMessage\').style.display = \'table\';" />';