0

AJAXからのリクエストを処理してJSONとして渡すPHPアクションがあります。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');
        })
    }
});

私のhtmldivには、

<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 の内容を変更できます。success-callback の最初の行を次のように変更します。

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 に答える