我的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">×</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 -->
答案 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']
代替。