0

我有这个 jQuery 代码,当我单击 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>

例如,隐藏中的值我只是插入它,但它是循环来区分的。价值。

然后它将插入到数据库中。

<?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我可以看到选择按钮的不同值。

4

2 回答 2

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 的第一个元素。

于 2012-07-09T04:07:26.243 回答
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.'"]';
?>
于 2012-07-09T04:09:54.973 回答