0

データベースに関するレポートを作成するページを作成中です。簡単にするために、私が含めているものはすべて 1 つのフィールドのみを使用します。自分がしなければならないことの概念を理解したら、それをフル バージョンに適用できます。これは、はるかに大きなデータベースです。

これが私の構造のアイデアと、それができるようにしたいことです。ユーザーが名前を入力して送信をクリックするフォームを持つ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:

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 フォーム アクションはそれ自体であり、すべてが 1 つのファイルに含まれていましたが、クエリの実行中、ページは何もしていないように見え、ユーザー フレンドリーではありませんでした。

クエリが終了したら、results.php の$tableStringgetstuff.php から表示するために必要なことを解決しようとしています。<div id="content">

私が間違っている場所とそれがどのように見えるべきかについての助けは大歓迎です。

ありがとう。

4

3 に答える 3

0

getstuff.php で欠落している唯一のものは、tableString をエコーアウトするだけです。

フォーム全体を送信したい場合 $.post("getstuff.php", $("#aplas").serialize(), function(data) {});

于 2012-09-20T00:18:21.953 に答える
0

問題を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) {

ご協力いただきありがとうございます。

于 2012-09-20T22:06:01.663 に答える
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();
?>
于 2012-09-20T11:26:14.607 に答える