我在login.php中使用ajax调用两次并使用两个不同的参数调用ajax.php:
的login.php
$(function()
{ $("#slctSys").focusin(function()
{ $.get("ajax.php"
,{sysuser:$("#sysUser").val(), sysupw:$("#sysPswd").val()}
,function(data1) {$("#slctSys").html(data1); });
})
.change(function()
{ $.get("ajax.php"
,{sysid:$("#slctSys").val()}
,function(data2) {$("#divURL").text(data2);});
});
});
ajax.php
<?php
include_once('function.php');
if (isset($_GET['sysuser']))
{ $c=sysSelectDB('sysdb');
$sysinfo=$c->prepare('select sysname from sysinfo
where sysuun = "'.$_GET['sysuser'].'"
and sysupw = "'.$_GET['sysupw'].'"');
$sysinfo->execute();
$ijk='<option value=-1>Select ...</option>';
if ($sysinfo->rowCount()>0)
{ while ($data = $sysinfo->fetch(PDO::FETCH_ASSOC))
{ $ijk.='<option value='.$data['sysid'].'>'.$data['sysname'].'</option>'; }}
else { $ijk='<option value=-1>No Access !!!</option>'; }
$sysinfo->closeCursor();
$c=null;
echo $ijk; }
if (isset($_GET['sysid']))
{ $c=sysSelectDB('sysdb');
$s='select * from sysacss where sysid='.$_GET['sysid'];
$sysinfo=$c->prepare($s);
$sysinfo->execute();
if ($sysinfo->rowCount()==1)
{ $data=$sysinfo->fetch(PDO::FETCH_ASSOC); $retVal=implode("#;#",$data); }
$sysinfo->closeCursor();
$c=null;
echo '$retValsalam'; }
我还在ajax.php中包含了一个function.php,如下所示:
function.php
<!DOCTYPE html>
<meta content="text/html; charset=utf-8" http-equiv=content-type>
<LINK href="/sysdb/resource/sysStyle.css" rel="stylesheet" />
<script src ="/sysdb/resource/jquery-2.1.1.min.js"></script>
<script>
function timer()
{ var cT=new Date();
var cH=cT.getHours();
var cM=cT.getMinutes();
var cS=cT.getSeconds();
return (cH<10?"0":"")+cH+(cM<10?":0":":")+cM+(cS<10?":0":":")+cS; }
...
在第一次ajax调用时,已检索的数据正常。但是在第二个中,function.php会追加到返回值。为什么呢?
答案 0 :(得分:0)
我找到了基于您的问题@MSTannu的解决方案。你是对的。我只是在include函数之后使用ob_start()和ob_end_clean()。问题解决了。我认为只有第二次调用pre append包含文件到输出,但两个ajax调用具有相同的行为。 TNX。