2012-07-09 156 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.'"]'; 
?>