【问题标题】:How to send values from jQuery-AJAX function to PHP file and access those values in PHP file?如何将值从 jQuery-AJAX 函数发送到 PHP 文件并在 PHP 文件中访问这些值?
【发布时间】:2014-12-10 17:46:43
【问题描述】:

我写了一个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 文件中的这些值?

【问题讨论】:

    标签: javascript php jquery ajax


    【解决方案1】:

    你应该改变这个:formdata ? formdata : form.serialize()

    将其存储在一个变量中并连接您要发送的值。

    例如:

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

    【讨论】:

    • 这不是一个完整的解决方案。我应该如何在 PHP 中访问这些数据?你能把它集成到我的代码中吗?
    • 使用 $_POST["myField1"] 您可以访问 myField1 参数的值(在本例中为“myValue1”)。
    【解决方案2】:

    正如@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
    

    【讨论】:

      猜你喜欢
      • 2018-04-10
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-11
      • 1970-01-01
      相关资源
      最近更新 更多