我有这个jQuery代码,当我单击Select的第一个值时,它会插入到数据库中,但当我单击Select的第二个值,它会再次插入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.value。
则它将插入到数据库中。
<?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按钮的不同值。
我觉得你的解释有点令人困惑,但我认为你是在说你在页面上重复了该表单及其两个输入元素好几次,当单击特定的"选择"按钮时,你想提交其相关的隐藏值。
如果是这样,请尝试对您的功能进行以下小更改:
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-如果你违反了这一规则,浏览器通常会显示页面,但你的JS不会正常工作:对于大多数浏览器来说,通过重复的id进行选择会返回具有该id的第一个元素。
这是因为一旦成功函数运行,程序就会出错,因为数据[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.'"]';
?>