【问题标题】:Jquery 'loading' message while PHP runs MySQLi Query当 PHP 运行 MySQLi 查询时,Jquery '正在加载'消息
【发布时间】:2012-09-12 08:08:27
【问题描述】:

我正在编写一个对数据库进行一些报告的页面。 为简单起见,我所包含的所有内容仅使用一个字段。一旦我了解了我必须做什么的概念,我就可以将它应用到完整版,这是一个更大的数据库。

这是我的结构的一个想法,以及我希望它能够做什么。我有 results.php,它有一个用户输入名称并单击提交的表单。 当他们单击提交时,我希望它弹出一个带有“请稍候”消息的弹出窗口(尝试 BlockUI,但对建议开放)。而在后台getstuff.php 正在获取输入的名称并检查该名称的数据库。一旦找到(或未找到),blockUI 消息就会消失,并在 results.php 中的表单下现在显示一个表格,其中包含来自 getstuff.php 的结果

代码: 结果.php:

<form action="getstuff.php" method="post" enctype="multipart/form-data" id="aplas" name="aplas" class="cmxform">
    <table cellpadding="0" cellspacing="3" id="reportTable">
      <tr>
        <td><label for="name">Name: </label></td>
      </tr>
      <tr>
        <td><input type="text" name="name" id="name" maxlength="3" size="10" /></td>
      </tr>
      <tr>
        <td colspan="9" align="right"><input type="submit" name="submit" value="Find" id="find"></td>
      </tr>
    </table>
  </form>
  <div id="content"> </div>

getstuff.php:

require_once('includes/DbDetails.php');
$name = $_POST['name'];
@mysqli_select_db($DBConnect, "DATABASE")
    Or die("<p><b>Unable to select the database.</b></p>" . "<p>Error Code ".mysqli_errno($DBConnect).": ".mysqli_error($DBConnect))."</p>";
$SQLquery = "SELECT * FROM users WHERE name='".$name."'";    
$QueryResult = @mysqli_query($DBConnect, $SQLquery) 
    Or die("<p>Unable to execute the query.</p>"."<p>Error Code ".mysqli_errno($DBConnect).": ".mysqli_error($DBConnect))."</p>"; 
$row = mysqli_fetch_row($QueryResult);
$tableString = "<table><tr><th>Name:</th></tr><tr><td>{$row[0]}</td></tr></table>";
mysqli_close($DBConnect);
echo $tableString;

results.php 头部的Javascript:

$(document).ready(function(){
    $('#find').click(function(){
        $.blockUI;
        $.post("getstuff.php", $("#aplas").serialize(), function(data) {
            $('#content').html(data);
            $.unblockUI;
        });
    });
});

这是我以前没有做过的 blockUI 和额外文件 (getstuff.php) 部分。最初,results.php 表单操作是针对自身的,并且全部包含在一个文件中,但是当查询运行时,页面似乎什么也没做,这对用户来说不是很友好。

我正在努力弄清楚我需要做什么,以便在查询完成后在 results.php 的&lt;div id="content"&gt; 中显示来自getstuff.php 的$tableString

非常感谢任何有关我哪里出错以及它的外观的帮助。

谢谢。

【问题讨论】:

    标签: php jquery mysql ajax mysqli


    【解决方案1】:

    您只需要回显 tableString,这是getstuff.php 中唯一缺少的东西

    如果你想发送整个表单 $.post("getstuff.php", $("#aplas").serialize(), function(data) {});

    【讨论】:

    • 我更新了原始帖子以反映您建议的更改。这一切似乎都正常工作,例如没有错误或显示任何内容,BlockUI 弹出然后消失得很好,好像它正在工作但没有任何内容添加到#content div?
    【解决方案2】:

    既然你得到了 .html(),请检查这是否对你有用

    require_once('includes/DbDetails.php');
    $name = $_POST['name'];
    @mysqli_select_db($DBConnect, "DATABASE")
        Or die("<p><b>Unable to select the database.</b></p>" . "<p>Error Code ".mysqli_errno($DBConnect).": ".mysqli_error($DBConnect))."</p>";
    $SQLquery = "SELECT * FROM users WHERE name='".$name."'";    
    $QueryResult = @mysqli_query($DBConnect, $SQLquery) 
        Or die("<p>Unable to execute the query.</p>"."<p>Error Code ".mysqli_errno($DBConnect).": ".mysqli_error($DBConnect))."</p>"; 
    $row = mysqli_fetch_row($QueryResult);?>
    <table><tr><th>Name:</th></tr><tr><td>{<?php echo $row[0]?>}</td></tr></table>
    <?php 
    mysqli_close($DBConnect);
    exit();
    ?>
    

    【讨论】:

    • 我尝试了上述方法,但得到了相同的结果。 BlockUI 弹出然后消失得很好,好像它正在工作但没有添加到#content div中。我尝试在$('#content').html(data); 所在的位置以及$.unblockUI; 之后放置一个alert(data);,但没有显示任何弹出窗口..
    • 我将getstuff.php更改为$name = "jake";并浏览到getstuff.php,它在页面上显示名称为:jake的表格。所以这意味着它必须是表单帖子或jquery中的东西......
    【解决方案3】:

    好的,在将问题缩小到 jquery 之后,我开始阅读有关表单、.post 等的各种 API,并尝试了一些东西,然后是 BAM!它开始工作了。

    将results.php头部的jquery改为:

    $(document).ready(function() {
        $("#aplas").submit(function(event) {
            $.blockUI();
            event.preventDefault();
            $.post("getstuff.php", $("#aplas").serialize(), function(data) {
                $('#content').html(data);
                $.unblockUI();
            });
        });
    });
    

    主要变化来自

    $('#find').click(function(){
    

    $("#aplas").submit(function(event) {
    

    感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多