Jquery刷新div块一次显示php会话

时间:2013-02-04 05:10:10

标签: jquery refresh php

如何使用包含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);
}

2 个答案:

答案 0 :(得分: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'));

<强> JQUERY

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);

        }
    }

答案 1 :(得分:0)

ajax调用页面在您使用json时返回dataType: '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);
    }
}