我有这个jQuery代码,当我单击Select it insert到数据库的第一个值时,但当我单击Select的第二个值时,它再次插入Select的第一个值。如何插入选择的第二个值。 示例链接为:http://cocopop12.site11.com/search/index.php
我的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>
隐藏中的值我只是插入它例如但它是循环到diff。值。
然后它将插入数据库。
<?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() );
?>
插入数据库工作但只插入了第一个值,因此当我单击第二个或第三个Select按钮时,它不会读取jQuery。 我该如何解决?
在firefox控制台javascript上使用firebug我可以看到select按钮的不同值。
答案 0 :(得分: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将无法正常工作:对于大多数浏览器选择duplicated id将返回带有该id的第一个元素。
答案 1 :(得分:0)
这是因为一旦你的成功函数被运行,你的程序就会收到错误,因为data [0]是未定义的。要修复在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.'"]';
?>