2012-01-11 56 views
1

我有一個while循環的形式動態添加輸入上點擊,但有一個while循環

<?php 
     <select> 
     while($select = $sql->fetchObject()) 
     { 
     $name=$select->name; 
     $alt = $select->alt; 
     echo "<option value='".$alt."'>".$name."</option>"; 
     } 
     </select> 
?> 
<div id='new_name'>Add Name</div> 

我想一些如何使用jQuery動態添加一個新的選擇選項(從相同的選項while循環)上點擊,如果theres php如何做這樣的事情?

非常感謝!

+0

PHP在服務器端和Javascript在客戶端完成,所以請包括生成的HTML而不是PHP代碼。 – Stefan 2012-01-11 08:27:35

回答

4

PHP代碼運行在服務器端,而jQuery是JavaScript,因此運行客戶端,所以PHP代碼不會影響jQuery。從服務器返回的內容僅僅是一個純HTML元素。因此,您可以使用jQuery的.clone()複製選擇。

$('select').clone().appendTo('form'); 

既然你不指定要點擊添加複製的選擇是什麼,我只會讓它可能如何看一個例子:

$("#my-id-to-click-on").click(function(){ 
    $('select').clone().appendTo('form'); 
}); 

注意因爲我不不知道任何有關表單和輸入的類或ID,這些示例使用非常普遍的選擇器,如果DOM中有多個表單或多個選擇,這將成爲問題。我建議你將ID或類添加到表單中,然後選擇,然後用它們來選擇。這樣就會更加防彈。

您可能還需要添加if語句以確保僅在您第一次單擊時才複製選擇內容。如果這就是你想要它的行爲。

+0

感謝您的輸入,我正在使用克隆來獲取我的表單,但問題是,您說的ID和類。也許我將不得不做一些服務器端PHP編碼與陣列,並做一些內爆和爆炸,並將其發送到我的數據庫。 – hellomello 2012-01-11 17:29:36

+0

@andrewliu我不知道我明白你的意思。什麼是你想存儲在數據庫? – 2012-01-11 17:35:45

+0

假設下拉菜單中會填入名稱,如果我想添加其他名稱,我會點擊「添加名稱」(這會克隆下拉菜單以添加其他名稱)。基本上我希望能夠將每個名稱保存爲數據庫中的不同行,因此每個名稱都會有一個ID(假定數據庫自動增量)。我猜爆炸和爆炸wouldnt需要。但我只是說,因爲我可以做無限的可能性仍然是正確的? – hellomello 2012-01-11 19:52:16

1

你還可以:

  1. 生成與PHP的選擇,禁用和隱藏它們,然後單擊啓用和表演。
  2. 使用PHP和json_encode設置包含所有數據(name-alt對)的javascript變量,然後單擊使用變量內容生成帶有javascript的HTML選擇。