2017-12-26 15 views
0

私はすべてのサブページに新しいajaxファイルを作成したくないので、作成、更新、削除するすべてのajaxリクエストを要約したいと思います。PHP/JS:サマリーajaxリクエスト

そこで私は、私のすべての入力の名前と「INPUT_」のような選択し、「SELECT_」と&エリアでテーブル名を追加します。 *は、MySQLテーブルの行を表します。

$.ajax({ 
    type: "POST", 
    url: "php/ajax/ajax.create.php", 
    data: $('#form_*').serialize() + "&area=customers", 
    success: function(result) { 
     alert(result); 
    } 
}); 
  1. がどのように私は「INPUT_」と「SELECT_」せずにすべての値を持つ配列を取得するためにPHPでデータを処理することができます。そして、

    私は(たとえば作成)とAJAX要求を行います(例:name => name、email => email、...)

  2. これは、すべてのAjaxリクエストを処理するための良い安全な方法ですか?事前に

感謝:)

+0

のように、すべてのサブページに新しいajaxファイルを作成したくないため、パスを削除してからサーバー側でパラメータを解釈することができます。側。ですから、あなたのURLは 'php/ajax/customers/create'のように見えます。* customers *はパラメータです。より一般的にはあなたのパスは 'php/ajax/{page}/{action} 'か、GETパラメータ' php/ajax?page = {page}&action = {action} 'やその他のものを使うだけです。これらはすべてサーバー上の同じエンドポイントに当てられ、使用するパラメーターに基づいて何をすべきかを決めることができます。 – vlaz

答えて

0

あなたが送信しているものをPHPに伝える、1 PHPとあなたのAjaxリクエストにする必要があります。 PHPでは、送信中の現在のデータを確認するのにisset()を使用してください。あなたのJavaScriptでPHP

<?php 

if (isset($_POST['delete'])) { 
    // delete post data 
} elseif (isset($_POST['update'])) { 
    // update post data 
} elseif (isset($_POST['create'])) { 
    // create data here 
} elseif .... 

で例えば

$('#delete').on('click', function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: "php/ajax/ajax_file.php", 
     data: $('#deleteForm').serialize() + '&' + $.param({delete: true}), 
     success: function(result) { 
      alert(result); 
     } 
    }); 
}) 

$('#create').on('click', function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: "php/ajax/ajax_file.php", 
     data: $('#createForm').serialize() + '&' + $.param({create: true}), 
     success: function(result) { 
      alert(result); 
     } 
    }); 
}) 

$('#update').on('click', function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: "php/ajax/ajax_file.php", 
     data: $('#updateForm').serialize() + '&' + $.param({update: true}), 
     success: function(result) { 
      alert(result); 
     } 
    }); 
}) 

すべてこの要求は、同じファイルを使用して、あなただけのデータがあなたのPHPにisset()で送信されているか確認する必要があります。フォームに隠れた入力を使用して、<input type="text" name="delete" value="delete" hidden>