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