我使用Smarty模板創建一個調查表單,在這個表單中,我想用一個特定問題的單選按鈕附加一個事件,以便在點擊任何一個單選按鈕時彈出消息。 所以我想添加一個點擊/更改事件監聽器,但不知道如何使用php。由於我不知道單選按鈕ID(它們是在飛行中生成的),因此我不確定是否可以在此處使用Javascript。 任何解決方案/建議?是否可以使用PHP添加事件偵聽器?
谷歌搜索返回所有類型的答案,爲Android和JavaScript添加事件監聽器是沒有用的!
我使用Smarty模板創建一個調查表單,在這個表單中,我想用一個特定問題的單選按鈕附加一個事件,以便在點擊任何一個單選按鈕時彈出消息。 所以我想添加一個點擊/更改事件監聽器,但不知道如何使用php。由於我不知道單選按鈕ID(它們是在飛行中生成的),因此我不確定是否可以在此處使用Javascript。 任何解決方案/建議?是否可以使用PHP添加事件偵聽器?
谷歌搜索返回所有類型的答案,爲Android和JavaScript添加事件監聽器是沒有用的!
只需在單選按鈕中添加一個類,然後使用JavaScript/JQuery,就可以根據需要向輸入添加事件偵聽器。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="myjsfile.js"></script>
<input type="radio" class="clickyradio" />
<input type="radio" class="clickyradio" />
<input type="radio" class="clickyradio" />
現在在文件中myjsfile.js
$(document).ready(function() {
$('.clickyradio').click(function() {
// whatever you want to happen when it gets clicked
// "this" keyword will refer to the input element that got clicked
});
});
如果你需要點擊的東西傳達給服務器,就把單擊事件處理程序內調用Ajax。
thnx代碼!自從我使用現有的系統構建...時,我遇到了這個問題...做了一些狩獵和醜陋的黑客來整合這個想法......並且它在那裏!根據需要工作:) – Ani
PHP無法偵聽單選按鈕,因爲所有代碼都在服務器端完成,而單選按鈕將在客戶端單擊。你幾乎肯定會使用JavaScript。如果你對JS不太舒服,我會推薦檢查jQuery。這是非常用戶友好,並快速學習恕我直言。有了這個,你可以聽點擊raido按鈕,然後通過AJAX將信息傳回PHP腳本。我會給你一個更好的例子,但不知道你的代碼很難說明它。
我與JS合作過,所以這不是問題。我沒有意識到我可以在PHP中創建JS,正如Jack在上面評論中所建議的那樣,現在正在尋找如何做到這一點。我認爲這會解決我的問題。如果你有一個代碼來說明這一點,這將是非常有幫助的。謝謝! – Ani
你會得到一個php事件監聽器最接近的事情是在javascript事件觸發後,通過ajax調用一些特定的php功能。該請求在技術上連接到客戶端的事件鏈(回調)。
但php不這樣做,因爲它不是客戶端。
你可以做到這一點,你只是想用php來編寫你的javascript。你可以通過以下兩種方式之一來完成這一操作,方法是將其寫入文件中,或者將腳本指向php文件。
如果你選擇後者,this site
討論如何設置文件。如果您在文檔中執行此操作,您只需執行以下操作:
<?php
echo "<script>";
if($radio_button == 'blah'){
echo "document.getElementById('$radio_button')";//bind your event here
}
echo "</script>";
有意義嗎?在javascript命令中調用php文件可能更加整潔,但兩種方式都可以工作。
爲什麼不能通過PHP生成部分JavaScript服務器端? – 2012-05-09 22:33:44
如果您不知道身份證,您將如何找到單選按鈕? – ilanco
我知道這個問題(當我從數據庫中獲取它)單選按鈕將被添加彈出...在Smarty中,使用模板處理顯示,該模板是代碼創建單選按鈕的ID的位置。儘管我可以嘗試使用php內部的代碼生成邏輯。 傑克的建議聽起來像一個可能的選擇,搜索更多關於 – Ani