0

我有一个 PHP 操作,通过它我处理来自 AJAX 的请求并将其作为 JSON 传递。JSON在成功响应中,我应该打开应该包含响应的弹出窗口

$.ajax({
    url: 'http://localhost/feedback/public/index/email/',
    type: 'POST',
    data: {
        emaildata: emailid
    },
    dataType: 'json',
    success: function (data) {
        $('div#pop-up').show();
        $(".closebtn").click(function () {
            $("div#pop-up").css('display', 'none');
        })
    }
});

我的 html div 有,

<div id="pop-up">
    <input type="button" class="closebtn" value="close" />Firstname</br>Lastname</br>EmailId</br>Comments</br>
</div>

我希望来自 ajax 响应的数据得到附加。我真的不知道要做什么。我也无法在我的 html 中使用 for 循环,因为我在最后一行退出了我的控制器。下面是我的控制器。

PHP 控制器

foreach($result AS $row)         
{ 
    $arrValues = array(
        "firstname"=>$row['firstname'], 
        "lastname"=>$row['lastname'],
        "emailid"=>$row['emailid']
    );             
}   
$this->view->data=$arrValues;  
echo json_encode(array('rows'=>$arrValues));    
exit;

您能否建议我以更好的方式使用 JSON 数据格式化弹出窗口?

4

1 回答 1

0

您可以使用 jQuery 更改 div 的内容。将成功回调的第一行更改为以下内容:

var html = '<input type="button" class="closebtn" value="close"/> ' 
           + data.firstname + '<br/>' + data.lastname + '<br/>' + data.emailid;
$('#pop-up').html(html).show();  

因此,您完整的成功回调看起来像这样

success: function(data) { 
    var html = '<input type="button" class="closebtn" value="close"/> ' 
           + data.firstname + '<br/>' + data.lastname + '<br/>' + data.emailid;

    $('#pop-up').html(html).show();                       

    $(".closebtn").click(function(){ 
        $("#pop-up").hide();
    });   
}
于 2012-08-08T11:10:10.010 回答