我已經構建了一個mysql數據庫表所支持的聯機內容頁,其中包含一個包含事件標題的字段。管理員頁面允許添加,編輯和刪除條目。最近有人問我,如果網絡鏈接可以嵌入在標題字段,發現編輯領域包括以下形式的鏈接:從mysql中檢索javascript字符串以供後續編輯
Click <a class=hdg onclick="newWindow('http://www.address');"> HERE </a> to open web link
會做的伎倆,並在一個新窗口中打開網址newWindow函數。
不幸的是,任何使用管理頁面編輯這樣的mysql記錄的嘗試都會破壞管理頁面的顯示,因爲字符串是從標題字段返回爲文本框的值,然後鏈接文本由瀏覽器,以便只有部分字段顯示在屏幕上的框中。該字符串的其餘部分出現在框外,這對於非技術用戶來說很混亂。
一個快速而髒的修復方法是在編輯時使用Ctrl-A選擇整個文本框的內容,然後在將整個標題內容正確提交到數據庫時,將整個標題內容鍵入或粘貼到該框中。但是,如果有人知道如何編寫JavaScript代碼,那麼一方面它將作爲Web鏈接正常工作,另一方面可以通過HTML表單編輯,我很樂意知道。最終,我想我會重新構建數據庫來分別保存實際的URL,並使用PHP來構建JavaScript鏈接,但同時呢?
感謝您的回覆,Barmar。 htmlentities()解決了HTML表單字段的格式問題,並且在回寫到數據庫記錄時使用了html_entity_decode(),以確保存儲的字符串正常工作。這給了我一個喘息的空間,爲字符串的不同位重新構建數據庫,並重新編寫php代碼,將這些位放在要使用字符串的網頁上。 –