0

PHPセッションを含むidでdivを更新するにはどうすればよいですか?

私のJQ ajax呼び出し:

$('#btn_1').click(function(){
    var parameters = $('#booking_form').serialize();

    $.ajax({
        url: baseurl + 'site/process',
        type: 'POST',
        data: parameters,
        dataType: 'json',
        success: function(output_str){
            if(output_str == "false"){
                $('#result_msg').html("please select one");

            }else{
                $('#result').html(output_str);
                $('#loaddiv').load();

            }
        }
    });
});

ajaxコールバック後にリロードしたい場所は次のとおりです。

<p>
<div id="result" style="color:#606;"></div>
</p>

<div id="loaddiv">
    <p><?php echo $selected; ?></p>
    <p><?php echo $sum_charges; ?></p>
</div>

$selectedプロセス中に保存さ$sum_chargesれるphpセッションです。手動で更新したときにのみセッションがページに表示されます。結果がページにコールバックされたときにすぐにセッションを表示するにはどうすればよいですか?

ありがとう!!

編集:

私は自分のプロセスで codeigniter (CI ではまだ新しい) を使用しています。これは、このプロセスのコントローラーの一部です。

public function process(){
    $confTypes = $this->input->post('cType');
    $user_email = $this->input->post('user_email');
    $output_str = NULL;
    $conf_charge_total = 0;

    if(!empty($confTypes)){

        foreach($confTypes as $confType){
            $explode_value = explode(",", $confType);

            $conf_type = $explode_value[0];
            $conf_charge = $explode_value[1];

            $conf_charge_total += $conf_charge; //sum up checked values

            $output_str .= $conf_type.":".$conf_charge.",";
            /*$output_str = array(
                    'selected' => $conf_type.','.$conf_charge,
                    'email' => $user_email,
                    'sum' => $conf_charge_total,
                    'flag' => 'true'
                );*/
            $this->session->set_userdata('selected', $output_str);

        }

        $output_str .= $conf_charge_total;

        $this->session->set_userdata('sum_charges', $conf_charge_total);

    }else{
        $output_str = "false";
    }

    echo json_encode($output_str);
}
4

2 に答える 2

0

jsスクリプトが同じページにある場合は、実行できます..

success: function(output_str){
        if(output_str == "false"){
            $('#result_msg').html("please select one");

        }else{
            $('#result').html(output_str);
            var divContent="<p><?php echo $selected; ?></p><p><?php echo $sum_charges; ?></p>"; //this will echo the latest session variable...
              $('#loaddiv').html(divContent);

        }
    }

更新しました

セッション変数をjsonとして送信します

PHP

 echo json_encode(array('selected'=>$selected,'sum_charges'=>$sum_charges,'output_str'=>'yourStr'));

Jクエリ

success: function(output_str){
        if(output_str == "false"){
            $('#result_msg').html("please select one");

        }else{
            $('#result').html(output_str.output_str);
            var dinContent="<p>"+output_str.selected+"</p><p>"+output_str.sum_charges+"</p>"; //this will echo the latest session variable...
              $('#loaddiv').html(dinContent);

        }
    }
于 2013-02-04T05:32:34.710 に答える
0

ajax呼び出しページはjson使用したとおりに戻り、呼び出されたページはlikedataType: 'json'を返す必要がありますjson formatted string

echo json_encode(array("selected"=>"abc","sum_charges"=>123));

あなたのajax function変更では、成功関数は次のようになります。

success: function(output_str){
    if(output_str == "false"){
        $('#result_msg').html("please select one");

    }else{
        $('#result').html(output_str);
        var str="<p>"+output_str.selected+"</p><p>"+output_str.sum_charges+"</p>";
        $('#loaddiv').html(str);
    }
}
于 2013-02-04T05:41:49.830 に答える