簡體   English   中英

如何將值從jQuery-AJAX函數發送到PHP文件並在PHP文件中訪問這些值?

[英]How to send values from jQuery-AJAX function to PHP file and access those values in PHP file?

我寫了一個jQuery-AJAX函數如下:

$('#request_form').submit(function(e) {
  var form = $(this);
  var stud_id = $('#stud_id').val();
  var reg_date = $('#reg_date').val();
  var formdata = false;


  var fileInput = $("#receipt_image")[0];  

  /*I want to pass values of below variables to the PHP file.*/
  var ImgSizeInBytes = fileInput.files[0].size;
  var filename = $('input[type=file]').val().split('\\').pop();
  var customer_id = $('#customer_id').val();
 /*These values need to send to PHP file and access there */

  if(window.FormData) {
    formdata = new FormData(form[0]);
  }

  var formAction = form.attr('action');

  $.ajax({
    url         : 'student_request.php',
    type        : 'POST',    
    cache       : false,
    data        : formdata ? formdata : form.serialize(),
    contentType : false,
    processData : false,
    success: function(response) {
      var responseObject = $.parseJSON(response);    
      if(responseObject.error_message) { 
        if ($(".alert-dismissible")[0]) {
          $('.alert-dismissible').remove();   
        }  
        var htmlString = "<div class='alert alert-danger alert-dismissible' role='alert'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>"+responseObject.error_message+"</div>";    
        $(htmlString).insertBefore('div.modal-body #request_form');        
      } else { 
        alert("Student successfully registered...!!!");       
      }
    }
  });
  e.preventDefault();
});

現在,我可以通過PHP文件中的$_POST數組訪問表單上用戶填寫的值。 但是我也希望將我在上面的代碼中添加注釋的值傳遞給PHP文件。

我要發送的值/參數不是表單字段的一部分。 我操縱了這些變量的值。 所以他們不能進入$_POST數組。

我的問題是如何將這些值發送到PHP文件以及如何在PHP文件中訪問這些值?

你應該改變這個: formdata ? formdata : form.serialize() formdata ? formdata : form.serialize()

將其存儲在變量中並連接要發送的值。

例如:

var pars = formdata ? formdata : form.serialize();
pars += "&myField1=myValue1&myField2=myValue2"

正如@chris所說,你需要做的就是將你自己的隱藏變量連接起來發布變量。 正如我所看到的,你對如何在php文件中使用這些額外變量感到困惑,這里有一個簡單的例子:

var params = formdata ? formdata : form.serialize();
params += "param1=myExtraVar1&param2=myExtraVar2";

所以現在你已准備好將所有變量發送到你的php文件,在ajax調用中修改你的數據參數,如下所示:

...data: params,

到現在為止還挺好。 讓我們看看對方(PHP)

<?php 
    // get the variables you want to treat.
    $param1 = $_POST['param1']; // now you have access to this variable from ajax call
   // Notice you can display all variables you have in superglobal variable POST 
   // by dumping it using either var_dump($_POST) or print_r($_POST)

希望這有助於更好地理解這個過程,並隨時發表評論,我會回復你

我捕獲的另一件事我希望與您分享,您可以使用數據類型轉換為JSON而不是轉換返回的響應,因此您可以將此代碼放在ajax調用中的任何位置:

dataType: "json", // if you put this in last line, omit the comma, otherwise leave as it is

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM