Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.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
Php ajax成功后如何重新加载页面内容_Php_Jquery_Ajax - Fatal编程技术网

Php ajax成功后如何重新加载页面内容

Php ajax成功后如何重新加载页面内容,php,jquery,ajax,Php,Jquery,Ajax,对于给定的php和javascript代码,如何在jQueryAjax成功函数之后仅重新加载页面内容,而不是整个页面。在这种情况下,它最初会显示 成功 在ajax调用之后,它将显示为 失败 重新加载整个页面 Php代码: <?php require 'dbconnect.php'; $sql="select * from tbl_status where id='1'"; $res=mysql_query($sql); $row=mysql_fetch_array($res); if($

对于给定的php和javascript代码,如何在jQueryAjax成功函数之后仅重新加载页面内容,而不是整个页面。在这种情况下,它最初会显示

成功

在ajax调用之后,它将显示为

失败

重新加载整个页面

Php代码:

 <?php
require 'dbconnect.php';
$sql="select * from tbl_status where id='1'";
$res=mysql_query($sql);
$row=mysql_fetch_array($res);
if($row['status']=='1')
{
 ?>
Success <div class="status" style="visibility:hidden;">0</div>
 <?php
 }
 else
 {
 ?>
 Failed
<div class="status" style="visibility:hidden;">1</div>
 <?php
 }
 ?>
 <input type="submit" class="send"/>

如果您在重新加载页面时遇到问题,则可以使用

window.location.href=window.location.href


考虑到您的ajax运行良好,希望这对您有所帮助。。。您得到的响应是HTML

您不需要调用location.reload()。。 您只需要将响应附加到DOMtree

已更新

HTML

....
?>  //close php tag
<div id="displayStatus">  //create new div with id displayStatus
<?php
if($row['status']=='1')
{
 ?>
    Success <div class="status" style="visibility:hidden;">0</div>
<?php
 }
 else{
 ?>
    Failed <div class="status" style="visibility:hidden;">1</div>
 <?php
  }
 ?>
 </div> //end the div
updatestatus.php

 $status= $_POST['status'];
//make you query ..update your table 
 if($status == '0'){
     echo 'Failed <div class="status" style="visibility:hidden;">1</div>';
 }else{
    echo 'Success <div class="status" style="visibility:hidden;">0</div>';
 }
$status=$\u POST['status'];
//使您查询..更新您的表
如果($status==“0”){
echo“失败1”;
}否则{
回声“成功0”;
}

在成功中使用load而不是reload

...
 success  : function (e)
     {
       $('your id or class name').load(php_file_name +'your_id_or_class_to_refresh');
       var response=e;
       alert(response);
       location.reload();
     },
....


// location.reload(); // <-- does not work so
。。。
成功:职能(e)
{
$('your id or class name')。加载(php_file_name+'your_id_or_class_to_refresh');
var响应=e;
警报(响应);
location.reload();
},
....

//location.reload();// 试试看。如果记事本上写的有问题,我很抱歉

index.php

<?php
require 'dbconnect.php';
$sql="select * from tbl_status where id='1'";
$res=mysql_query($sql);
$row=mysql_fetch_array($res);
<div id="response">
if($row['status']=='1')
{
?>
   Success <div class="status" style="visibility:hidden;">0</div>
<?php
}
else
{
?>
Failed
<div class="status" style="visibility:hidden;">1</div>
<?php
}
?>
</div>
<input type="submit" class="send"/>


<script type="text/javascript">
$(document).ready(function(){
  $('.send').click(function(){
  var status=$('.status').text();
  $.ajax({
     type: 'POST', 
       url: 'http://localhost/status/updatestatus.php',
           data: 'status='+status,
         success  : function (data, status)
         {
           $("#response").html(data.status);
         },
         error: function()
         {
           alert('error');
         }
      });
});
});
</script>

问题是:jQuery部分和PHP部分不兼容。 你没有真正改变你的退货状态,只是发短信。要发出“失败”的信号,请在PHP端使用一些标题。例如:

在PHP中:

header('HTTP/1.0 403 Forbidden');
die('Failed');
然后,ajax将引发一个“错误”处理程序,而不是“成功”

您应该只使用“成功”处理程序,并在以下内容中测试返回的文本:

在JavaScript中:

success: function(data) {
   if (data == 'Failed') {
       alert('ERROR');
       location.reload();
   } else {
        alert('Success');
   } 
},

我已使用此代码更改状态,并在页面上显示更改的值。这是一个Javascript函数,它使用对PHP的Ajax请求来更改数据库中状态的值

function changeStatus(divID,id,action,frontOrAdmin)
{


        xmlhttp=getobject();
        var query="id="+id+"&action="+action+"&frontOrAdmin="+frontOrAdmin;
        $oldStatus = document.getElementById(divID).innerHTML;
        document.getElementById(divID).innerHTML='<img src="images/loading_icon.gif">';
        xmlhttp.onreadystatechange=function()
        {
                if (xmlhttp.readyState==4)
                {
                        var response = xmlhttp.responseText;
                        var responseArr = response.split(",");

                        if(($.trim(responseArr[1])=="0")||($.trim(responseArr[1])=="1")){
                           document.getElementById(divID).innerHTML=responseArr[0];
                        }
                        else{           
                            alert(responseArr[0]);
                            document.getElementById(divID).innerHTML=$oldStatus;
                        }
                }
        }
        xmlhttp.open("GET","pass.php?type=changestatus&"+query,true);
        xmlhttp.send(null); 
}
功能更改状态(divID、id、action、frontOrAdmin)
{
xmlhttp=getobject();
var query=“id=”+id+”&action=“+action+”&frontOrAdmin=“+frontOrAdmin;
$oldStatus=document.getElementById(divID).innerHTML;
document.getElementById(divID).innerHTML='';
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4)
{
var response=xmlhttp.responseText;
var responseArr=response.split(“,”);
if($.trim(responseArr[1])==“0”)| |($.trim(responseArr[1])==“1”)){
document.getElementById(divID.innerHTML=responseArr[0];
}
否则{
警报(响应器[0]);
getElementById(divID).innerHTML=$oldStatus;
}
}
}
open(“GET”、“pass.php?type=changestatus&”+query,true);
xmlhttp.send(空);
}

您想重新登录页面吗??或者你不想。。这让人困惑…我不想重新加载整个页面,只想重新加载页面内容好的。。那么为什么要使用location.reload()。。你能告诉我们你想把内容放在哪里吗?当我点击“提交”按钮时,数据库表中的状态列将变为“0”,结果显示为一个警报,然后如何在不重新加载整个页面的情况下将“成功”变为“失败”检查我的更新答案,问题是,它希望在状态为“1”时显示“成功”,在状态为“0”时显示“失败”。因此,当我们使用ajax更新status='0'时,在ajax成功函数之后,“success”将变为“failed”,而不重新加载整个页面,只重新加载页面内容。。
header('HTTP/1.0 403 Forbidden');
die('Failed');
success: function(data) {
   if (data == 'Failed') {
       alert('ERROR');
       location.reload();
   } else {
        alert('Success');
   } 
},
function changeStatus(divID,id,action,frontOrAdmin)
{


        xmlhttp=getobject();
        var query="id="+id+"&action="+action+"&frontOrAdmin="+frontOrAdmin;
        $oldStatus = document.getElementById(divID).innerHTML;
        document.getElementById(divID).innerHTML='<img src="images/loading_icon.gif">';
        xmlhttp.onreadystatechange=function()
        {
                if (xmlhttp.readyState==4)
                {
                        var response = xmlhttp.responseText;
                        var responseArr = response.split(",");

                        if(($.trim(responseArr[1])=="0")||($.trim(responseArr[1])=="1")){
                           document.getElementById(divID).innerHTML=responseArr[0];
                        }
                        else{           
                            alert(responseArr[0]);
                            document.getElementById(divID).innerHTML=$oldStatus;
                        }
                }
        }
        xmlhttp.open("GET","pass.php?type=changestatus&"+query,true);
        xmlhttp.send(null); 
}