欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

通过ajax POST传值,但返回为空

程序员文章站 2024-01-11 22:37:11
...
第一次接触ajax,想通过一个简单的例子来练练
index.php中有一个下拉列表,选择不同的班级返回不同的学生信息
代码如下:

查询学生信息

请选择班级:



通过result.php查询数据库,并返回学生信息,代码如下:

学号
姓名
住址
班级
";	foreach($info as $v){		$result.="
{$v['sid']}
{$v['name']}
{$v['address']}
{$v['cid']}
";	}	$result.="";	echo $result;?>


我单独测试了下result.php,我确定没有问题,能从数据库中取出对应的信息,但是就是不能把取到的信息返回到index.php中
求各位帮帮忙,找找问题在哪


回复讨论(解决方案)

result.php
不能直接返回带输出内容,要用 json_encode 处理返回的数据

如:查表中的数据出来放到一数组中,然后:echo json_encode($arr);

给div设置value?即使你的查询时正常的,由于div的value并不会直接在视图中展现,所以你看不到效果。
你需要的应该是innerHTML

result.php
不能直接返回带输出内容,要用 json_encode 处理返回的数据

如:查表中的数据出来放到一数组中,然后:echo json_encode($arr);



ajax不是有三种返回格式吗?分别为text, xml,json
我这里用的是text格式,我不知道这有什么错误

至少需要把 var show=document.getElementById("info"); 放在回调函数中

给div设置value?即使你的查询时正常的,由于div的value并不会直接在视图中展现,所以你看不到效果。
你需要的应该是innerHTML



恩恩,你说的对(我Js基础不是很好==),我按照您说的改了,然后按步骤调试了下:

查询学生信息

请选择班级:

aaa


下拉列表的值通过js取到了,我用window.alert(data)调试的时候没有问题
但是在result.php中通过$class=$_POST['class']取值的时候$class没有被赋值,因为我通过file_put_contents("D:/WWW/PHPDemo/log.log",$class."\r\n",FILE_APPEND);把$class的值保存在log.log文件中,但我运行后
打开时这个文件为空,且运行报错,说:Notice: Undefined index: class in D:\WWW\dbDesign\project\result.php on line 5
我想问下我的ajax通过POST传值的 方式有错误吗??

学号
姓名
住址
班级
";	foreach($info as $v){		$result.="
{$v['sid']}
{$v['name']}
{$v['address']}
{$v['cid']}
";	}	$result.="";	echo $result;?>

问题就是没有把值传到result.php里面去,,,为什么呢,,一直没找到问题出在哪

xmlhttprequest.setRequestHeader("Content-Type","application/x-www-form-urlencode");

xmlhttprequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

最后少写了一个d

我能说我是一行行代码仔细看仔细看才找到错误的么=====
不知道有什么js调试工具能调试出这种错误,就不用这么费时间找BUG了。。。。

做程序员千万不能粗心,以此共勉

为什么不用jquery呢?

  

http://api.jquery.com/jQuery.post/

为什么不用jquery呢?

   

http://api.jquery.com/jQuery.post/

js才入门,我js基础很差的,我想把js基础打好点再用框架