php中用Ajax提交查询的数据没有和数据库同步 本帖最后由 maole413149 于 2010-07-01 16:07:55 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 页面上的也需要改变啊 如:<div id="val">1</div><input type="text" id="test1" name="test1">然后再ajax 返回成功信息的时候 需要document.getElementById('val').innerHTML=document.getElementById('test1').value; ajax是无刷新提交方式,所以你的页面没有变化才正确 function GetSource(pageindex,pageSize,DivID){ if(typeof(pageindex) == "undefined" || typeof(pageSize) == "undifined") { pageindex = 0; pageSize = 5; } var url = "getList.php?pageindex="+pageindex+"&pageSize="+pageSize; var divs = document.getElementById(DivID); var ajax = InitAjax(); ajax.open("get",url,true); ajax.onreadystatechange = function() { if(ajax.readyState == 4) { divs.innerHTML = ajax.responseText; } } ajax.send(null);} getList.php 查询数据数据显示正常,修改完之后调用的上面的函数,我看数据库中数据也更改了,但是,页面数据不和数据库同步,还是修改前的。 打印ajax.responseText;出来看看返回的数据变了没有。 那是你的getList.php里面有问题,JavaScript这里没有问题。 <?phpheader("Content-Type:text/html;charset=gbk");require_once 'connDb.php';$pageIndex = $_GET["pageindex"];$pageSize = $_GET["pageSize"];mysql_query("SET NAMES GBK");$getCont = "select count(*) as cott from address";$sourt = mysql_query($getCont);$contt = mysql_result($sourt, 0, 'cott');$sql = "select * from address limit " . ($pageIndex * $pageSize) . "," . $pageSize;$source = mysql_query($sql);$row = mysql_num_rows($source);for ($i = 0; $i < $row; $i++){// echo ....................}mysql_close();那你再给看看 ajax.status = ?这个是多少啊,这个都不知道呢 估计是缓存。var url = "getList.php?pageindex="+pageindex+"&pageSize="+pageSize;var url = "getList.php?pageindex="+pageindex+"&pageSize="+pageSize+"&rnd="+Math.random(); if(ajax.readyState == 4 && ajax.status == 200)效果一样。 最好也加上if(ajax.readyState == 4 && ajax.status==200){ divs.innerHTML = ajax.responseText;}而你现在这种也必须,在请求修改的AJAX后,等到它返回了你定义的修改成功的状态后,再去调用GetSource。但是因为你修改也是用的ajax,其实在你请求修改的ajax的时候,就可以直接返回PHP处理后的内容,并显示到页面上就行了,没必要再去请求一次。 ajax.status == 200 等同于 ajax.readyState == 4 && ajax.status == 200 ajax.readyState == 4 不等同与 ajax.readyState == 4 && ajax.status == 200 header("location".$url)不能用于if语句中? php无限级分类,在phplib模板中如何输出到html呢 怎么把这个二级联动变成N级? 自动计算的问题,急需支援 急啊,大家帮帮忙阿! PHP 显示问题 有两个虾米的问题,请大虾帮助解释一下,谢谢! 问一下:在程序中加入什么语句 能查看数据库地址 如何将网页控件上的输入的图片保存到数据库中 (紧急求助) 存储过程中使用concat()遇到的问题 求救.Apache2.0不能跨网络访问 求救高手,net.ru域名问题
如:<div id="val">1</div>
<input type="text" id="test1" name="test1">
然后再ajax 返回成功信息的时候
需要document.getElementById('val').innerHTML=document.getElementById('test1').value;
function GetSource(pageindex,pageSize,DivID)
{
if(typeof(pageindex) == "undefined" || typeof(pageSize) == "undifined")
{
pageindex = 0;
pageSize = 5;
}
var url = "getList.php?pageindex="+pageindex+"&pageSize="+pageSize;
var divs = document.getElementById(DivID);
var ajax = InitAjax();
ajax.open("get",url,true);
ajax.onreadystatechange = function()
{
if(ajax.readyState == 4)
{
divs.innerHTML = ajax.responseText;
}
}
ajax.send(null);
}
数据显示正常,修改完之后调用的上面的函数,我看数据库中数据也更改了,但是,页面数据不和数据库同步,还是修改前的。
<?php
header("Content-Type:text/html;charset=gbk");
require_once 'connDb.php';
$pageIndex = $_GET["pageindex"];
$pageSize = $_GET["pageSize"];
mysql_query("SET NAMES GBK");
$getCont = "select count(*) as cott from address";
$sourt = mysql_query($getCont);
$contt = mysql_result($sourt, 0, 'cott');
$sql = "select * from address limit " . ($pageIndex * $pageSize) . "," . $pageSize;
$source = mysql_query($sql);
$row = mysql_num_rows($source);
for ($i = 0; $i < $row; $i++)
{
// echo ....................
}
mysql_close();那你再给看看
var url = "getList.php?pageindex="+pageindex+"&pageSize="+pageSize;
var url = "getList.php?pageindex="+pageindex+"&pageSize="+pageSize+"&rnd="+Math.random();
if(ajax.readyState == 4 && ajax.status == 200)
效果一样。
if(ajax.readyState == 4 && ajax.status==200)
{
divs.innerHTML = ajax.responseText;
}而你现在这种也必须,在请求修改的AJAX后,等到它返回了你定义的修改成功的状态后,再去调用GetSource。但是因为你修改也是用的ajax,其实在你请求修改的ajax的时候,就可以直接返回PHP处理后的内容,并显示到页面上就行了,没必要再去请求一次。
ajax.readyState == 4 不等同与 ajax.readyState == 4 && ajax.status == 200