各位大大好:
請問ajax可以傳輸到同一個頁面嗎?想說要切換使用者名字$_SESSION['CNAME']
若ajax傳到另一個頁面是可以的,但同一個頁面$_POST['chauditor']
好像會讀取不到
謝謝
auditor2.php
session_start();
$inactive = 7200;
ini_set('session.gc_maxlifetime', $inactive);
if (isset($_SESSION['testing']) && (time() - $_SESSION['testing'] > $inactive)) {
session_unset();
session_destroy();
}
else{
if (!isset($_SESSION)) {
session_start();
if (!empty($_POST['chauditor'])){
//用ajax應該chauditor會取到值,讓$_SESSION['CNAME']變更名字,但好像不行?
$_SESSION['CNAME']=$_POST['chauditor'];
}
else {
echo"沒有值";
}
}
}
$_SESSION['testing'] = time(); // Update session
?>
<?php
if($_SESSION['CNAME']==""||$_SESSION['identity']!=="1301"){
header("Location:login.php");
}
?>
<li><a href="javascript:void(0)" onclick="change_audit('<?php echo $saduitor; ?>')"><span><?php echo $saduitor; ?></span></a></li>
js
function change_audit(aduit){
var change_aduitor=aduit;
$.ajax({
url:"auditor2.php",
type:"POST",
data: {
"chauditor":change_aduitor,
},
error: function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.responseText);
},
success: function(data) {
console.log(data);
location.reload();
}
});
}
其實從你的php來看,就不太適合給ajax使用了。
畢竟你後面還有一個
header("Location:login.php");
跟一段html的應用
而且你還在取到值後,又做了一段reload。
我不懂你這段的意思是什麼?為何要這樣做?
因為當你reload後。你原本傳送的post值就消失了。
有點多此一舉的感覺。
從這邊來看,你似乎並不太懂ajax的應用方式處理
但看你有給與session的值。
理論上你該拿session來判斷才對。
雖然這也不算是正規的用法就是了。
浩瀚大好:改好了~謝謝~~
<?php
session_start();
if (isset($_POST['chauditor'])){
$_SESSION['CNAME']=$_POST['chauditor'];
echo $_SESSION['CNAME'];
exit;
}
?>
js
function change_audit(aduit){
var change_aduitor=aduit;
$.ajax({
type:"POST",
data: {
"chauditor":change_aduitor,
},
error: function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.responseText);
},
success: function(data) {
console.log(data);
location.reload();
}
});
}
只是拿來sessio的更換嘛?
這樣倒是可以。
對的