有未逃脫,即使你逃脫,目前導致你錯誤的雙引號,因爲使用的是單引號的屬性和JavaScript字符串呈現的HTML標記仍會有錯誤幾個報價在他們裏面。這樣你的JS可能不會工作。例如:
<button onclick='window.location.href='resources.php?subj=%s''>…</button>
實際上,您的代碼是一個很好的例子,爲什麼應該避免在字符串中使用變量。每次我需要在PHP中使用雙引號時,我都會覺得我做錯了什麼。也許模板引擎對你很有用。最簡單的版本是使用sprintf
輸出那種字符串:
$template = <<<EOTEMPLATE
<p style="color: orange; font-size: 25px;">%s -
<button type="button" onclick="window.location.href=\'resources.php?subj=%s\'" class="btn btn-sm btn-success pull-right">Resources</button>
<button onclick="window.location.href='questions.php?subj=%s'" class="btn btn-sm btn-success pull-right">Questions</button>
<button onclick="window.location.href='assessment.php?topic=%s'" class="btn btn-sm btn-success pull-right">Assessment</button>
</p>
<hr/>
EOTEMPLATE;
echo sprintf($template, $result['Topic'], $result['Subject'], $result['Subject'], $result['Topic']);
下一個優化迭代將刪除這些內嵌JS代碼片段並將其粘貼在一個單一的JS塊(甚至更好:一個單獨的* .js文件)。但是因爲您只加載另一頁,所以簡單的鏈接也可以。以下片段也應該做你的輸入建議。 (作爲一個鏈接也可以樣式看起來像一個按鈕)。
$template = <<<EOTEMPLATE
<p class="btn-group">%s –
<a href="resources.php?subj=%s" class="btn btn-sm btn-success pull-right">Resources</a>
<a href="questions.php?subj=%s" class="btn btn-sm btn-success pull-right">Questions</a>
<a href="assessment.php?topic=%s" class="btn btn-sm btn-success pull-right">Assessment</a>
</p>
<hr/>
EOTEMPLATE;
echo sprintf($template, $result['Topic'], $result['Subject'], $result['Subject'], $result['Topic']);
然後,如果你仍然需要JavaScript的(例如,以實現對這些按鈕的點擊跟蹤),你可以添加一個事件處理程序,這樣做:
(這個js例如只會在因爲"classList"使用的現代瀏覽器的工作)
你確定錯誤是在這條線? – Bryan
是的............ –
順便說一句,即使你修復你的PHP錯誤,這將永遠不會像這樣工作。與JavaScript,將有太多的錯誤,因爲你的' – CodeBird