我有一個參賽表格。在它下面,我想顯示一個包含現有記錄的網格。當用戶點擊網格的一行時,這些值必須填寫在上面表單的字段中。如何在用戶點擊一行而不刷新頁面時填寫表單?
有沒有辦法做到這一點,而無需刷新頁面?
我有一個參賽表格。在它下面,我想顯示一個包含現有記錄的網格。當用戶點擊網格的一行時,這些值必須填寫在上面表單的字段中。如何在用戶點擊一行而不刷新頁面時填寫表單?
有沒有辦法做到這一點,而無需刷新頁面?
如果表單所需的所有信息已經存在在頁面上,然後AJAX將是矯枉過正和簡單的Javascript將完成這項工作。這沒有經過測試,但是;
<form id="myform">
<input id="name" type="text" ... />
</form>
<tr>
<td onclick="populateFormElement('myform', 'name', this);">Bob</td>
</tr>
in javascript;
function populateFormElement(formName, inputName, element)
{
document.formName.inputName.value = element.firstChild.data;
}
這適用於單個元素,但應該是一個合理的起點,因爲該過程很容易適應整行。只需將onclick事件放在tr元素上,再逐步遍歷各個子元素以提取相關數據。
去獲取JQuery,並看看它的AJAX函數。您將需要使用PHP準備數據,並創建一個專門的頁面來爲它們提供服務。當用戶點擊按鈕時,將調用AJAX函數,它將從服務器加載數據,然後解析它們,並填充網格...
有什麼辦法可以做到這一點,而無需刷新頁面?
所以,關鍵是異步。 Ajax
中的第一個A
代表同一個詞。您還用Ajax
標記了該問題。所以我希望你對此有一定的瞭解。
但實際的問題根本不需要一個ajaxical解決方案。根本不需要從服務器端發送和接收數據,因爲所有需要的數據在相同的 HTML DOM樹中已經可用。
唯一可以訪問和遍歷客戶端HTML DOM樹的語言是Javascript
。它根本不會刷新頁面。只需相應地編寫代碼並在錶行的onclick事件中執行它。
如果你實際上在編寫Javascript代碼時有問題,那麼你需要在你的問題中詳細說明一下。不要問「有什麼辦法嗎?」 - 答案是在99.99%的案例yes
,但只是問「我該怎麼做?」,並提供有關您所使用的編碼的相關信息。
我真的不知道,這就是爲什麼我問。沒有批評意圖。 「用戶數據」(例如表格中的東西)真的可以被信任嗎?如果用戶改變了一些東西,會不會更糟? – Franz 2009-11-10 15:29:28
沒問題。我意識到你不知道,但是不管這個函數是在單個元素上還是在整個組中(即表格行)都有效,你需要了解發生了什麼事情才能讓它在你的特定應用程序中工作。也許你的下一站應該是一個Javascript教程或兩個?至於用戶數據是否可以信任,我不能說沒有更多的信息。我會說這是一個全新的問題! – Mathew 2009-11-10 16:59:01