【问题标题】:Target correct form input value Ajax and PHP针对正确的表单输入值 Ajax 和 PHP
【发布时间】:2012-12-31 12:21:53
【问题描述】:

我有一个这样的脚本:

  $(function() {
     $(".btn_bookmark").click(function() {

   var name = $("input.???").val(); 
   base_url = '<?php echo base_url() ?>';

    $.ajax({
            url: base_url+"bookmark/bookmark_item/"+name,
            success: function() {
                    // do something on success
            }
         });
    return false;
    });
});

我的表单在 PHP 循环中,如下所示:

foreach($page->result() as $row){
   echo '<form name="" method="post" action="">';
   echo '<input type="hidden" name="'$row->name'" id="'.$row->id.'" size="30" value="'.$row->val.'" />';
   echo '<input type="submit" name="submit" class="btn_bookmark" id="submit_btn" value="Bookmark" />';
   echo '</form>';
}

问题是每个表单隐藏的输入名称、ID 和值都与 MySQL 数据库不同/动态。那么如何为输入选择正确的值呢?

【问题讨论】:

    标签: php jquery mysql ajax


    【解决方案1】:

    与其抢var name = $("input.???").val();

    你可以像这样抓取隐藏的输入:

    $(this).parent().find('input[type=hidden]').val();
    

    这将获取触发事件的元素的父元素(在本例中为表单),然后获取该父元素的隐藏输入子元素。

    【讨论】:

      【解决方案2】:
      $(".btn_bookmark").click(function() {
          var name = $(this).prev().val();
          base_url = '<?php echo base_url() ?>';
      
          $.ajax({
                  url: base_url+"bookmark/bookmark_item/"+name,
                  success: function() {
                          // do something on success
                  }
               });
          return false;
          });
      });
      

      这样你会得到前一个元素,也就是隐藏的元素。

      【讨论】:

        【解决方案3】:

        实现与您的不同,但它应该可以工作。

        试试这个:

        foreach($page->result() as $row){
           echo '<form name="" method="post" action="">';
           echo '<input type="hidden" name="'$row->name'" id="bkmark'.$row->id.'" size="30" value="'.$row->val.'" />';
           echo '<input type="submit" name="submit" class="btn_bookmark" id="submit_btn" value="Bookmark" onClick="bookmarkThis(\'#bkmark' . $row->id . '\');" />';
           echo '</form>';
        }
        

        你的 js 将是:

        $(function() {
             boomarkThis = function(someId) {
                 var name = $(someId).val();
                 base_url = '<?php echo base_url() ?>';
        
                  $.ajax({
                        url: base_url+"bookmark/bookmark_item/"+name,
                        success: function() {
                                // do something on success
                        }
                     });
                return false;
                });
             }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-01-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-07
          • 2011-09-09
          相关资源
          最近更新 更多