2013-11-21 70 views
1

我創建文本框,下拉框循環領域的信息...如何獲得點擊

foreach ($users as $user) 
{ 
echo '<div class="row">'; 
echo '<input type="hidden" value="'.$user['uid'].'" id="userid"/>'; 
echo '<input type="text" value="'.$user['username'].'" disabled id="username"/>'; 
echo '<select name="site" id="site"> <option>Site A</option><option>Site B</option></select>'; 
echo '<select name="role" id="role">'; 
foreach ($roles as $role) 
    echo '<option>'.$role.'</option>'; 
    echo '</select>'; 
    echo '<input type="button" name="Change" id="Change" value="Change" onclick="getClick()">'; 
} 

我jQuery是

function getClick() 
{ 
    var a=$("#username").val(); 
    alert(a); 
} 

現在的問題是,當我在任何點擊更改按鈕我得到的用戶名爲第一行只...我如何獲得每行的用戶名...

+1

因爲你必須給每個字段分開的編號 –

+0

你能共享呈現的html結構嗎? –

+1

這裏您正在創建具有相同ID的多個元素。 – Jenz

回答

1

您應該使用類值而不是id,因爲元素是在循環內創建的 - 元素的ID在文檔中必須是唯一的。

因此改變所有id s到class

'<input type="hidden" value="'.$user['uid'].'" class="userid"/>' 

還可以使用jQuery的事件處理程序,而不是內聯一個

'<input type="button" name="Change" value="Change" class="change">' 

jQuery(function(){ 
    $('.change').click(function(){ 
     var $this = $(this), $row = $this.closest('.row'); 
     var a=$row.find(".username").val(); 
     alert(a); 
    }) 
}) 
+0

感謝工作像魅力... –

2

修改代碼下面給出:

echo '<input type="text" value="'.$user['username'].'" disabled 
    id="username"'.$user['uid'].'"/>'; 

echo '<input type="button" name="Change" id="Change" value="Change" 
     onclick="getClick("'.$user['uid'].'")">'; 

的Javascript :

function getClick(userid) 
{ 
    var a=$("#username"+userid).val(); 
    alert(a); 
} 
+1

謝謝它也工作正常 –