我试图在php执行之前显示加载图像,查询在第二个页面上工作,但是结果没有显示在第一个页面上,我知道我在这里遗漏了什么,有人能帮我吗?我对jquery或ajax很陌生。
home.php
<html>
<head>
<!--Javascript-->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
$('#loading_spinner').show();
var post_data = "items=" + items;
$.ajax({
    url: 'list.php',
    type: 'POST',
    data: post_data,
    dataType: 'html',
    success: function(data) {
        $('.my_update_panel').html(data);
    },
    error: function() {
        alert("Something went wrong!");
    }
});
$('#loading_spinner').hide();
</script>
<style>
   #loading_spinner { display:none; }
</style>
</head>
<body>
<img id="loading_spinner" src="image/ajax-loader.gif">
<div class="my_update_panel">
<!--I am not sure what to put here, so the results can show here-->
</div>list.php --我测试了查询并打印了行。
<?php
   include_once("models/config.php");
   // if this page was not called by AJAX, die
   if (!$_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') die('Invalid request');
   // get variable sent from client-side page
   $my_variable = isset($_POST['items']) ? strip_tags($_POST['items']) :null;  
       //run some queries, printing some kind of result
   $mydb = new mysqli("localhost", "root", "", "db");
   $username = $_SESSION["userCakeUser"];
       $stmt = $mydb->prepare("SELECT * FROM products where username = ?");
   $stmt->bind_param('s', $username->username);
   $stmt->execute();
   // echo results
   $max = $stmt->get_result();
   while ($row = $max->fetch_assoc()) {
      echo $row['title'];
       echo $row['price'];
      echo $row['condition'];
   }
?>发布于 2013-09-26 19:04:54
HTML。将img放入.my_update_panel div中。
<div class="my_update_panel">
    <img id="loading_spinner" src="image/ajax-loader.gif">
</div>JS
var url = 'list.php';
var post_data = "items=" + items;
$('.my_update_panel').load(url, post_data, function() {
    $(this +' #loading_spinner').fadeOut('slow');
});您可以找到一个很好的选择加载图像,可以随时下载这里。
发布于 2013-09-26 18:45:50
有一个问题
变量post_data = "items=“+条目;
搞定
$(document).ready(function(){
        $('#loading_spinner').show();
$.ajax({
    url: 'list.php',
    type: 'POST',
    data: {"items":items},
    dataType: 'html',
    success: function(data) {
        $('.my_update_panel').html(data);
        $('#loading_spinner').hide();     
    },
    error: function() {
        alert("Something went wrong!");
    }
});
});如果对你有用,请告诉我。
发布于 2013-09-26 19:05:35
尝试在ajax中添加完整的事件,我希望它能工作。参考http://api.jquery.com/jQuery.ajax/
<html>
<head>
<!--Javascript-->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
$('#loading_spinner').show();
var post_data = "items=" + items;
$.ajax({
    url: 'list.php',
    type: 'POST',
    data: post_data,
    dataType: 'html',
    success: function(data) {
        $('.my_update_panel').html(data);
    },
    error: function() {
        alert("Something went wrong!");
    },
    complete:function(){
           $('#loading_spinner').fadeOut(500);
});
//$('#loading_spinner').hide();
</script>
<style>
   #loading_spinner { display:none; }
</style>
</head>
<body>
<img id="loading_spinner" src="image/ajax-loader.gif">
<div class="my_update_panel">
<!--I am not sure what to put here, so the results can show here-->
</div>https://stackoverflow.com/questions/19035991
复制相似问题