使用jquery ajax将php变量传递给模态

时间:2014-03-24 20:53:43

标签: javascript php jquery ajax

我的jquery ajax脚本有问题。我无法将变量传递给模态。我整个周末一直在搞乱这个问题,并且无法弄清楚它是不是通过变量。

这是调用模态的链接和我试图传递的id

echo '<img src="./images/see.png" class="open-editexpenses" data-target="#editexpenses" data-id="' . $value['expid'] . '" >';

这是jquery ajax脚本

$(document).on('click', '.open-editexpenses', function() {
                var id = $(this).data('id');
                $.ajax({
                    type: "POST",
                    url: "expenses.php",
                    data: {id: id},
                    success: function() {
                        $('#editexpenses').modal('show');
                    }
                });
            });

这是我正在开放的模式

<div class="modal fade" id="editexpenses" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">

      <?php

        echo $id;
         var_dump($_POST);
         //var_dump($_GET); 
                 ?>  



      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div><!-- /.modal -->

2 个答案:

答案 0 :(得分:0)

$(x).data('id')$(x).attr('data-id')不同,这可能是您阅读data-id元素的img属性之后的内容。

有关详细信息,请参阅jQuery Data vs Attr?

答案 1 :(得分:0)

我将假设&#39;模式&#39;是expenses.php,并且您使用$('#editexpenses').modal('show');的jQuery插件来表示任何内容。

从我所看到的,您实际上并未将expenses.php的响应添加到DOM中。您可以通过更改AJAX调用中的success函数来执行此操作:

success: function(html) {
    $('body').append(html);
    $('#editexpenses').modal('show');
}

这里我刚刚添加了返回到页面末尾的HTML,但是jQuery还有很多其他方法可以插入到DOM中:https://api.jquery.com/category/manipulation/


另外,请注意假设$id中的expenses.php变量存在。这在PHP的register_globals设置打开时有效,但这被认为是非常糟糕的做法,在PHP 5.3.0中已弃用,实际上已在5.4.0中删除。只需使用$_POST['id']代替。