如何使用jquery选择列出的表单中的输入字段

时间:2010-02-17 14:20:39

标签: jquery ajax forms jquery-selectors

我在一个页面上通过循环列出了几个表单,如下所示:(提取)

if(mysql_num_rows($r)>0): 
while($row = mysql_fetch_assoc($r)):  ?>
        <form id="myForm" action="save_fb.php" method="post"> 

        Title: <input type="text" name="fb_title" value="<?php echo $row['fb_title']; ?>" /><br> 

    <a href="javascript:;" class="save_fb" id="<?php echo $row['fb_id']; ?>"></a>


        </form>

在我的ajax请求中,我做了类似的事情:

  $.ajax({
   type: "POST",
   data: $("input:text[name=fb_titel]").val()+$(this).attr("id"),
   url: "save_fb.php",
   success: function(msg)
   {
    $("span#votes_count"+the_id).fadeOut();
    $("span#votes_count"+the_id).html(msg);
    $("span#votes_count"+the_id).fadeIn();
   }
  });
 });

现在我得到的结果总是第一行,而不是链接被点击的行但是$(this)工作正常,但我不知道如何结合......任何人都知道数据线应该是什么样的?

感谢任何提示=)

3 个答案:

答案 0 :(得分:0)

试试这个:

  $.ajax({
   type: "POST",
   data: $(this).prev("input[name=fb_title]").val()+$(this).attr("id"),
   url: "save_fb.php",
   success: function(msg)
   {
    $("span#votes_count"+the_id).fadeOut().html(msg).fadeIn();
   }
  });
 });

答案 1 :(得分:0)

更改脚本的第三行......

data: $(this).parent().find("input:text[name=fb_title]").val()+$(this).attr("id"),

您当前的脚本会找到任何<input name="fb_title">的第一个实例。如果您使用此功能,则只能以与您点击的链接相同的格式找到<input name="fb_title">

答案 2 :(得分:0)

PHP / HTML:

mysql_num_rows($r)>0): 
while($row = mysql_fetch_assoc($r)):  ?>
        <form id="myForm-<?php echo $row['fb_id']; ?>" action="save_fb.php" method="post"> 

        Title: <input type="text" name="fb_title" value="<?php echo $row['fb_title']; ?>" /><br> 

    <a href="javascript:;" class="save_fb" id="<?php echo $row['fb_id']; ?>"></a>


        </form>

jQuery:

  var id = $(this).attr("id"); 
  $.ajax({
   type: "POST",
   data: $("input:text[name=fb_titel]", "#myForm-" + id).val() + id,
   url: "save_fb.php",
   success: function(msg)
   {
    $("span#votes_count"+the_id).fadeOut();
    $("span#votes_count"+the_id).html(msg);
    $("span#votes_count"+the_id).fadeIn();
   }
  });
 });