1

JQuery の関数の 1 つを使用して AJAX を実装しようとしています。Stack Overflow の例のいくつかを使用して、.load()、.ajax()、または .post() をさまざまな方法で試してみましたが、成功しませんでした。

Oracle DBにクエリを実行し、別のフォームと結果テーブルを返すフォームがあります。個別のPHPファイルを使用して従来の方法で動作させています(新しいページ全体をリロードします)。今、ページを更新せずにコンテンツをロードしたいだけです。

Start Form PHP (checkin_start.php): バーコードを入力して送信…</p>

<div class="content" id="bodyContent">
  <form id="usualValidate" class="mainForm" method="post" action="">
    <label>Barcode:<span>*</span></label>
    <input type="text" class="required" name="startBarcode" id="startBarcode"/>
    <input type="submit" value="submit" class="blueBtn" id="startBtn" />
  </form>
</div>

プロセス PHP (checkin_process.php): 新しいフォームと php 関数からのクエリ結果が id="bodyContent"… にロードされます。</p>

<form id="checkinProcess" class="mainForm" method="post" action="">
  <label>Barcode:<span>*</span></label>
  <input type="text" class="required" name="processBarocdes" id="processBarcodes"/>
  <input type="submit" value="submit" class="blueBtn" id="submitBtn" />
</form>
<!-- Shipment List Table -->
<?php
  // Accept a parameter from #usualValidate form and run query.                 
  $barcode = $_POST['startbarcode'];    
  search_shipped_barcode($barcode);                         
?>

関数 PHP (functions.php): 結果テーブルを返します…</p>

<?php 
function search_shipped_barcode($barcode){
<--! DB connection & query -->  
  echo "<table>";
    <--! echo table results -->
  echo "</table>";
}
?>

どちらを選択してもおそらく同じ問題があると思うので、これが私の .post() の試みです。フォームデータをphp関数に渡し、データを返す方法がよくわかりません...

$(document).ready(function() {
  $("#usualValidate").submit(function(sevt) {
    sevt.preventDefault();
    var startBC = $("#startBarcode").val();
    $.post("checkin_process.php",
          {"startBarcode" : "startBC"},
          function(data) {$("#bodyContent").html(data)},
          "html");
  });
});

洞察をありがとう....

4

2 に答える 2

1

$.post を使用する場合、値がリテラルでない限り、値を引用しないでください。

これを試して:

$(document).ready(function() {
  $("#usualValidate").submit(function(sevt) {
    sevt.preventDefault();
    var startBC = $("#startBarcode").val();
    $.post("checkin_process.php",
          {startBarcode : startBC},
          function(data) {
            $("#bodyContent").html(data);
           // log the returned data to console for debug 
           console.log(data);
        });
  });
});
于 2013-01-30T20:51:31.263 に答える
0

JavaScript ファイルでは、postメソッドを使用するかajax、以下の例のように使用してデータを送信できます。

$.ajax({
    type : 'post',
    url : 'currentphpfile.php',
    //Here is where the data is put
    data : {
        "ajax" : "1",
        "otherData" : "abc"
    },
    success : function(data, textStatus, jqXHR) {
        //Do something with the data here like insert it into the document
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
        //Do something to fix the error
    },
    dataType : 'text' //Or automatically parse a json response with 'json'
});

これが機能するには、次のようにリクエストを処理できる何かが php ファイルに必要です。

if (!empty($_POST['ajax']) && $_POST['ajax']==1){
    //Do stuff with the other post data
    //Here's how to return the data to your script:
    //If you chose a text response above:
    echo $importantData;
    exit;
    //If you chose json
    echo json_encode(array("title" => $title, "text" => $text /*, etc... */));
}

私はこのコードのバグをテストしていませんが、おそらく理解できるでしょう。

于 2013-01-30T21:05:13.103 に答える