使用 ajax 在 bootstrap 模态中加载远程表单进行编辑

Load remote form for editing in bootstrap modal using ajax

这就是我正在尝试的:

打开模式:

<a href="" class="label label-important" 
data-toggle="modal" data-target="#editFee" 
data-id="'.$month['fid'].'" title="Edit '.$month['status'].' Fee">Edit</a>';

这是modal dialog:

<div class="modal fade" id="editFee" tabindex="-1" role="dialog"
style="width: 25%" aria-labelledby="myModalLabel" aria-hidden="true">
           <div class="modal-dialog">
              <div class="modal-content">
                 <div class="modal-header">
                   <h4 class="modal-title" id="myModalLabel">Pay Fee</h4>
                 </div>
                 <div class="modal-body">
                    <!--Load remode editfee.php--!>
              </div>
        </div>
    </div>
</div>

这是editfee.php

<?php 
$id=$_GET['id'];
$fee = QueryFee('Feetable', $id);
foreach($fee as $feeForm):
?>
<form>
<input type="text" id="amount" value="<?php echo $feeForm['amount']; ?>">
<input type="text" id="dateFee" value="<?php echo $feeForm['dateFee']; ?>">
<input type="submit" id="submitFee" value="Save Fee">
</form>
<?php endforeach;?>

最后 jquery ajax:

$(document).on("click", ".label", function(e){
        e.preventDefault();
        var id= $("#id").val();
        dataEdit = 'id='+id;
        $.ajax({
            type:'GET',
            data:dataEdit,
            url:'editfee.php',
            success:function(data) {
              $(".modal-body").val(data);             
            }
          });

    });

我正在使用 Bootstrap 模态 V2.0.4。上面的代码确实打开了对话框,但没有来自 editfee.php 的远程数据。请帮助我。

在您的示例中,此代码无效:

var id= $("#id").val();

你必须使用这样的东西:

var id = $(this).data('id');

并完成:

$(".modal-body").html(data);  
$(".modal-body").val(data);

将不起作用,因为模态主体只是一个 div 而不是输入元素。所以我们应该给

$(".modal-body").html(data);

而不是

$(".modal-body").val(data);

.val() 属性仅适用于输入元素。 .html() 用于将 html 内容附加到 div.

并通过

获取id属性
$(this).attr("id")

$(this).prop("id")