我已经编写了一个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'>×</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文件中访问这些值?
答案 0 :(得分:0)
您应该更改此内容:formdata ? formdata : form.serialize()
将其存储在变量中并连接您要发送的值。
例如:
var pars = formdata ? formdata : form.serialize();
pars += "&myField1=myValue1&myField2=myValue2"
答案 1 :(得分:0)
正如@chris所说,你需要做的就是将你自己的隐藏变量连接起来发布变量。正如我所看到的,你对如何在php文件中使用这些额外变量感到困惑,这是一个简单的例子:
var params = formdata ? formdata : form.serialize();
params += "param1=myExtraVar1¶m2=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