2016-11-19 7 views
0

ユーザーがフォームに記入し、入力をSAMEファイルのPHPスクリプトに送信してもらいたい。フォーム、ajaxスクリプト、およびPHPはすべて同じファイルにあります。 PHPを独自のrequest.phpファイルに分割するのがベストプラクティスですが、実際にこのメソッドを動作させたいと思っています。私は、次のコードを持っている:同じページに投稿するAjaxがデータとファイル全体を返す

PHPをAjaxは、コンソールのプリントアウトを実行する

<form id="quick-quote" class="" action="" method="post"> 
    <label>Country</label> 
    <select id="country" name="country"> 
    <option value="AU">Australia</option> 
    </select> 
    <label>Postal Code</label> 
    <input id="postal" type="text" name="postal" value=""> 
    <input id="submit" type="submit" name="" value="submit"> 
</form> 

$country = $_POST['ccode']; 
$postal = $_POST['pcode']; 

アヤックス

$(document).ready(function() { 
$('#quick-quote').submit(function(e){ 
     e.preventDefault(); 
     $.ajax({ 
      url: "same-page.php", 
      method: 'POST', 
      data: { 
      ccode: $('#country').val(), 
      pcode: $('#postal').val() 
      }, 
      dataType: 'text', 
      success: function(data){ 
      console.log(data); 
      }, 
      error: function(data){ 
      console.log("ajax failure"); 
      } 
     }); 
     }); 
     }); 

HTML:

Array 
(
    [ccode] => AU 
    [pcode] => 3000 
) 

ENTIREファイル(PHP、Jquery、HTML)の内容が続きます。

私はすでに別のPHPファイルをテストしており、うまくいきました。しかし、私は本当にこれがすべて同じファイル内にあることを(もし可能なら)望んでいます。だから私の質問です:どのように私はアヤックスの投稿の配列を解析することはできますか?それ以上は、関連するキー値のペアのみを投稿し、残りのファイルは公開しないでください。私は、ファイル全体を返すAjaxに関する他の投稿を見ましたが、同じページで呼び出されたときは見ませんでした。

+0

PHPコードを構造化して、AJAXリクエストを受け取ったときに認識し、配列だけを返すようにする必要があります。 –

+0

PHPスクリプト、スクリプト、およびテンプレートを別々のファイルに入れる方がはるかに優れています。 – Mardzis

答えて

3

さらに実行を終了するにはexitする必要があります。たとえば、

<?php //Place it in the top most of your file. 
if(isset($_POST)){ 
    //perform your operations here 
    exit; 
} 
?> 
<html> 
... 
</html> 
+2

これ以上の出力はありません – charlietfl

関連する問題