2012-07-09 74 views
0

我有這個jQuery代碼,當我點擊Select它插入到數據庫的第一個值,但是當我點擊Select的第二個值時,它再次插入第一個值選擇。我如何插入選擇的第二個值。 樣品鏈接:http://cocopop12.site11.com/search/index.phpjquery獲取輸入的第二個值

礦的jQuery代碼是:

$(function() { 
    $(".videoThumbS").click(function() { 
     var dataString = $("#v_w_id_value").val(); 
     $.ajax({ 
      type: 'POST',         
      url: 'api.php', 
      data: { v_w_id: dataString }, 
      dataType: 'html',    
      success: function(data) 
      { 
      var v_w_id_value = data[0];   //get name 
      $('#selected_thumbs').html("yt id:" + v_w_id_value);  //Set output element html 
      } 
     });  
    }); 
}); 

我的形式用foreach值。

<form method="post" action=""> 
<input id="v_w_id_value" type="hidden" name="v_w_id" value="OIUIUNKLJ" /> 
<input class="videoThumbS" type="button" name="selectSel" value="Select" id="selectbut" /> 
</form> 

隱藏我的價值只是插入它的例子,但它是循環差異。值。

然後它將插入到數據庫。

<?php 
include ('class/conn.php'); 
$v_watch_id = $_POST['v_w_id']; 
$selected_videos = mysql_query("INSERT INTO s_vids VALUE('', '$v_watch_id', NOW())") or die (mysql_error()); 
?> 

插入到數據庫工作,但只插入第一個值,所以當我點擊第二個或第三個選擇按鈕,它不讀了jQuery。 我該如何解決它?

在firefox控制檯上使用firebug javascript我可以看到選擇按鈕的不同值。

+0

哪裏是你選擇的元素..? – 2012-07-09 04:06:47

+0

您正在使用相同的ID(和名稱)多次。選擇器將會找到它的第一個實例。就這樣。 – 2012-07-09 04:10:32

+0

v_w_id_value的值是Kdo66I9gMwI,每次單擊該選擇以便只添加第一條記錄 – muthu 2012-07-09 04:11:31

回答

1

我發現你的解釋有點令人困惑,但我認爲你說你已經在頁面上多次重複該表單及其兩個輸入元素,並且當你點擊一個特定的「選擇」按鈕時,你想提交其相關的隱藏值。

如果是的話,試試這個微小的變化給你的函數:在您單擊處理

var dataString = $(this).siblings('input[name="v_w_id"]').val(); 

this是點擊的元素,所以$(this).siblings()獲取點擊的元素的兄弟姐妹和使用選擇'input[name="v_w_id"]'獲取特定的兄弟姐妹。

你這樣做的方式你選擇了隱藏的輸入ID爲v_w_id_value,這意味着它總是會選擇相同的輸入。 id屬性應該是唯一的,也就是說,沒有兩個元素應該具有相同的id - 如果你違反了這個規則,瀏覽器通常會顯示頁面OK,但是你的JS將無法正常工作:對於大多數瀏覽器重複的id將返回具有該id的第一個元素。

+0

OH MY GOD !!!它的工作:)非常感謝你...現在我知道什麼.siblings是。謝謝謝謝。 – user1506189 2012-07-09 04:10:49

+0

不客氣。正如我最後一段所暗示的,您應該更新您的代碼以避免重複ID。在這種情況下,表單中的任何輸入實際上都不需要一個id,因此我只需完全刪除該屬性。 – nnnnnn 2012-07-09 04:15:33

0

這是因爲一旦你成功的功能運行您的程序得到一個錯誤,因爲數據[0]是undefined.To修復試試這個在PHP文件

<?php 
include ('class/conn.php'); 
$v_watch_id = $_POST['v_w_id']; 
$selected_videos = mysql_query("INSERT INTO s_vids VALUE('', '$v_watch_id', NOW())") or die (mysql_error()); 
echo '["'.$v_watch_id.'"]'; 
?>