2013-03-29 217 views
1

如何重新载入页面内容,而不是整个页面后jQuery的ajax成功函数为给定的PHP和JavaScript代码。在最初它显示如何在ajax成功后重新载入页面内容

成功

之后AJAX调用它将会显示为

失败

与刷新整个页面..

编号:

<?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"/> 

Javascript代码:

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

     }, 
     error: function() 
     { 
     alert('error'); 
     } 
     }); 
}); 
}); 
</script> 
+0

你想要实现页面??或者你不想..这是令人困惑的... – bipen

+0

我不想重新加载整个页面,只重新加载页面内容 – lalith222

+0

好吧..那么你为什么使用location.reload()? ..你能告诉我们你想把内容放在哪里? – bipen

回答

0

如果您有重新加载页面的问题,那么您可以使用

window.location.href=window.location.href;

希望这有助于

0

考虑您的阿贾克斯工作正常......并且您得到的回复是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 

JQUERY

success : function (e) 
    { 
     var response=e; 
     alert(response); 
     $('#displayStatus').html(response); //replace the content in that 
    }, 

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>'; 
} 
+0

让我知道是否存在问题.. – bipen

+0

雅,问题在那里,当状态='1'时它想要显示'成功',当状态='0'时显示'失败'。 因此,当我们使用ajax更新状态='0'时,'成功'将在ajax成功函数后更改为'失败',而无需重新加载整个页面,只需重新加载页面内容。 – lalith222

+0

再次检查updatestatus.php部分 – bipen

0

使用负载在你的成功

... 
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 
1

Try.Sorry的,而不是重新加载,如果有,因为它是写在记事本中的一些问题。

的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> 

updatestatus.php

<?php 
require 'dbconnect.php'; 
$sql="update tbl_status set status=$_POST['status'] where id='1'";  
$res=mysql_query($sql); 
$count = mysql_affected_rows(); 

if($count > 0){ 
    return json_encode(array('status'=>$count)); 
}else{ 
    return json_encode(array('status'=>0)); 
} 

>

0

的问题是:你的jQuery的一部分,你的PHP的一部分是不兼容的。 你并没有真正改变你的回报状态,只是文字。要发信号“失败”在PHP端使用一些头。例如:

在PHP

header('HTTP/1.0 403 Forbidden'); 
die('Failed'); 

然后你阿贾克斯将引发一个 “错误” 处理不是 “成功”。

在JavaScript

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

我已经使用这个代码改变状态,并显示更改后的值

OR你应该只使用“成功”的处理程序和测试,在返回的文本在页面上。这是一个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); 
} 
相关问题