我在ajax文件中设置了一个session var:$_SESSION['id_essai']=$ligne[1];
。此var的值应在每次提交表单时更改。
如果没有为页面充电,我想获得此var的值。所以我这样回应:echo $_SESSION['id_essai'];
我的问题是,当我尝试回应它时,我得到之前的值,直到我为页面充电。我想刷新此var而不对页面进行充值。我怎样才能做到这一点 ?
编辑:
我向我的ajax文件发送一个handontable网格:
$(document).ready(function(){
$('#submit_button_essai').click(function(){
$.post("ajax_insert_essai.php",{arr:data_essai}, insert_essai_callback,'json');
return session;
});
});
在这个ajax文件中,我用这个网格的一个值声明我的session var,我可以这样返回:
array_unshift($tab_erreur,$_SESSION['id_essai']);
echo json_encode($tab_erreur);
所以我发送了一个错误数组和我在回调函数中处理的会话变量:
function insert_essai_callback(responseObject,ioArgs) //ajax renvoie les indices des cases erronnées et les messages correspondants.
{
var jsonobject = eval(responseObject);
console.log(jsonobject);
//alert(jsonobject[0]);
var session = jsonobject[0];
for(var item in jsonobject)
{
if((item % 2 ) == 0) //Si l'indice est pair, on affiche la couleur
{
$("td").eq(jsonobject[item-1]).after("<div class=\"message\">"+jsonobject[item]+"</div>");
}else //Si l'indice est impair, on affiche le message
{
$("td").eq(jsonobject[item]).css("background-color","red");
}
}
}
我的会话var在jsonobject[0]
中。
尝试在ajax中返回会话变量后,这是我的代码。
答案 0 :(得分:0)
我认为问题是每个reuqest都会在服务器上启动一个新会话。
<?php
session_start();
// Restart the last session if a session-id is given
if (isset($_GET['session-id'])
session_id($_GET['session-id']);
/* ... your code here .. */
$response = array('session-id' => session_id());
/* ... add some more values/results to your response */
header('Content-Type: application/json');
die(json_encode($response));
?>
答案 1 :(得分:0)
设置新的PHP文件。然后使用ajax在click事件或更改事件或其他内容上将需要更新的值发送到会话变量。当它收到值时,PHP将更新会话值。然后在JSON中返回该变量的值。田田你得到了更新的价值。我希望你理解..
示例代码看起来像这样
在ajax(我在这里使用的jquery ajax)
$.ajax({
url : 'session.php',
method : 'POST',
data : your value to update ,
dataType : json,
success : function(data){
alert(data.value);
}
})
在session.php文件中
<?php
session_start();
$value = $_POST['value'];
$_SESSION['value'] = $value;
$json = array('value' => $_SESSION['value'] );
print_r(json_encode($json));
?>
如果您需要在不刷新的情况下获取值,请在事件上调用ajax函数。然后将返回的数据更新为div或其他内容。我希望这个有帮助! :)
答案 2 :(得分:0)
在那里创建process.php
个文件并post/get
{。}}。
form
这会将您的资料发布到处理页面。
和<form method = 'post' action = 'process.php'>
<input type = 'hidden' value = 'some_Hidden_Value_that_You_Want' id = 'hidden_id'>
<!--Some other stuff (Grid may be) -->
<input type = 'button' value = 'Submit' id = 'submit_form'>
</form>
$("#hidden_id").click(function(){
var hidden_id = $('#hidden_id').val()
$.ajax({
url: 'process.php',
type: 'POST',
data:{
want_this: hidden_id
},
success: function(posted){
alert(posted);
}
});
});
或您的process.php
这样做可以查看您的内容
ajax_insert_essai.php
修改强>
<?php
print_r($_POST);
?>
中的
callback
答案 3 :(得分:0)
如果将从页面发送将成为新会话变量的数据,则只需使用页面上已有的数据即可使用JavaScript更新到页面。
如果要从页面发送要返回的数据,则无需重新获取数据,因为它已在页面上。