Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX未链接到PHP文件_Javascript_Php_Ajax - Fatal编程技术网

Javascript AJAX未链接到PHP文件

Javascript AJAX未链接到PHP文件,javascript,php,ajax,Javascript,Php,Ajax,我需要更改JavaScript函数中的会话值,所以我决定使用AJAX。然而,这个电话似乎不起作用。怎么了? 索引页设置默认会话值: session_start(); if( is_null($_SESSION['lang']) ){ $_SESSION['lang'] = 'english'; } 索引页上的AJAX调用: var request = new XMLHttpRequest(); request.open('GET', 'setlang.php?entry=0', fal

我需要更改JavaScript函数中的会话值,所以我决定使用AJAX。然而,这个电话似乎不起作用。怎么了?

索引页设置默认会话值:

session_start();
if( is_null($_SESSION['lang']) ){
    $_SESSION['lang'] = 'english';
}
索引页上的AJAX调用:

var request = new XMLHttpRequest();
request.open('GET', 'setlang.php?entry=0', false);
request.send();
setlang.php文件:

$entry = $_GET['entry'];
if($entry == 0){
    $_SESSION['lang'] = 'english';
    Print_r ($_SESSION);
}else if($entry == 1){
    $_SESSION['lang'] = 'japanese';
    Print_r ($_SESSION);
}

没有打印任何内容。有人知道怎么回事吗?

在setlang.php顶部添加以下内容:

session_start();

实际上,您不必检查响应(除非您省略了javascript的某些部分)

检查MDN的文档

var request = new XMLHttpRequest();
request.onload = function() {
    alert(this.responseText);
}
request.onerror = function(e) {
    alert('Error : ' + e.target.status);
}
request.open('GET', 'setlang.php?entry=0', false);
request.send();

还要确保调用
session_start()。

您使用什么方法查看对Ajax请求的响应?目前没有。这有助于调试Ajax调用吗?为什么投票结果如此接近?@LuckyInJapan-如果您不做任何事情来确定响应是什么,您如何知道没有打印任何内容?如果您直接在浏览器中打开
setlang.php
文件,会发生什么?感谢您的响应。我在ajax调用中添加了这个缺少的部分。当我启动javascript函数时,不会弹出警报。这意味着什么?打开开发者控制台,看看里面是否有打印的内容,在chrome中,你可以按F12打开它。哦!我想我明白我错在哪里了。如果我回显/打印该PHP文件中的任何内容,它将只显示在警报框中?您在PHP中打印的任何内容都将仅在
onload
this.responseText
中可用。非常感谢您的帮助!您填补了我在ajax知识方面的一些相当重要的空白,并真正帮助我提高了编码水平。