как выбрать поле ввода в списке с помощью jquery - PullRequest
0 голосов
/ 17 февраля 2010

Я получил несколько форм, перечисленных в цикле на одной странице, например: (выдержка)

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 голосов
/ 17 февраля 2010

Измените третью строку вашего скрипта следующим образом ....

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

Ваш текущий скрипт находит первый экземпляр любого <input name="fb_title">. Если вы воспользуетесь этим, он найдет <input name="fb_title"> только в той же форме, что и ссылка, по которой вы щелкнули.

0 голосов
/ 17 февраля 2010

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();
   }
  });
 });
0 голосов
/ 17 февраля 2010

Попробуйте это:

  $.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();
   }
  });
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...