2012-09-20 49 views
0

我正在編寫一個頁面,它會對數據庫進行一些報告。 爲了簡單起見,我所包括的一切只使用一個字段。一旦我得到我必須做的事情的概念,我可以將它應用到完整版本,這是一個更大的數據庫。PHP運行MySQLi時Jquery'加載'消息查詢

這是我的結構和我希望能夠做到的想法。我有results.php,其中有一個表單,用戶輸入一個名稱並單擊提交。 當他們點擊提交時,我希望它做一個彈出窗口(嘗試BlockUI但打開建議)與'請等待'消息。而在後臺getstuff.php抓取輸入的名稱並檢查數據庫中的該名稱。一旦它已經發現它(或沒有找到)的blockUI信息消失,在results.php形式下的表現的結果從getstuff.php

碼顯示: results.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:

$(document).ready(function(){ 
    $('#find').click(function(){ 
     $.blockUI; 
     $.post("getstuff.php", $("#aplas").serialize(), function(data) { 
      $('#content').html(data); 
      $.unblockUI; 
     }); 
    }); 
}); 
:在results.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; 

的Javascript

這是我以前沒有做過的blockUI和額外文件(getstuff.php)的一部分。最初results.php表單動作本身並且全部包含在一個文件中,但是當查詢運行時,頁面似乎沒有做任何事情,這不是非常用戶友好的。

我試圖找出我需要做的事情,在查詢完成後,從results.php的getstuff.php的<div id="content">中顯示$tableString

任何幫助,我哪裏去錯了,它應該看起來非常感謝。

謝謝。

回答

0

好工作,你縮小問題到我開始閱讀各種API jQuery的有關表格,等等。員額後發揮各地有幾件事情,然後BAM!它開始工作。

改變了jQuery在results.php的頭:

$(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) { 

感謝您的幫助。

0

你只需要回聲出tableString,這就是如果你想發送整個窗體$。員額(「getstuff.php」,$(「#aplas唯一缺少的getstuff.php

唯一「).serialize(),function(data){});

+0

我更新了原文,以反映您建議的更改。這一切似乎工作,例如沒有錯誤或任何顯示和BlockUI彈出,然後消失,好像它正在工作,但沒有什麼東西添加到#內容div? – Jake

0

既然你得到的.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(); 
?> 
+0

我嘗試了以上,但得到相同的結果。 BlockUI彈出,然後消失,就好像它正在工作,但沒有任何內容添加到#content div。我試着放置一個'alert(data);'',其中'$('#content')。html(data);'以及$'.unblockUI;'後面,但是沒有彈出窗口顯示出來.. – Jake

+0

我改變了getstuff.php具有'$ name =「jake」;'並瀏覽到getstuff.php,並在名稱爲jake的頁面上顯示該表。所以這意味着它必須是在表單後或jQuery中的東西... – Jake