我有使用html输入的表单。
然后,我添加了这个javascript(jquery)笔画,以读取和收集表单中的所有值或数据。
var formData = $("#form").serialize();
当我
console.log(formData);
输出将显示:
calc-ownership = ooo&calc-activity = restaurant&calc-tax = usn&calc-tax-2 = charge&calc-bank = partners&calc-who-payments = client&operations_count = 0&calc-nomenclature = slim&documents_count = 0&calc-who-docs = client&staff_count = 0&calc-more %5B%5D =专利&calc-more%5B%5D = alcohol&period =&price =&price_sber =&rate-name =&email-to =
然后我在jquery中找到了称为post的函数
$.post(path, formData, success, "json");
要求看起来像:
do.php?bank = partners
如您所见,它向我的do.php
发出了发布请求。
现在如何读取此查询并处理这些数据?
我在jquery中发现与$.post
类似。是$.ajax
完整代码:
$.ajax({ url: path, method: "POST", data: {formData: formData} });
效果很好。
但是我想和$.post
此刻我正在查看自己的网址。它看起来像:https://stackoverflow.com?ask=32321
我需要类似的内容才能使用php从javascript这个网址读取查询
答案 0 :(得分:1)
好的,我会举例说明,
如果要获取要使用的url参数值,
<script>
let my_variable='<?php echo $_GET['url_param_name'];?>';
</script>
以上以获得更多帮助和理解。现在您想将表单数据发送到php,以便在得到您的答复后进行处理。
这是示例表格。
<form id="my_form" name"my_form" method="POST" onsubmit="return send();">
First name:<br>
<input type="text" name="first_name" value="Mickey">
<br>
Last name:<br>
<input type="text" name="last_name" value="Mouse">
<br><br>
<input type="submit" value="Submit">
</form>
要发布上述表格,我将使用javascript函数,
<script>
function send() {
$.ajax
({
type: 'POST',
url: './path/your_php_file_where_form_data_processed.php',
data:$('#my_form').serialize(),
success: function () {
// do what you need to do on succeess
},
error: function (x, e) {
// for error handling
if (x.status == 0) {
console.log('You are offline!! - Please Check Your Network.');
} else if (x.status == 404) {
console.log('Requested URL not found.');
} else if (x.status == 500) {
console.log('Internal Server Error.');
} else if (e == 'parsererror') {
console.log('Error. - Parsing JSON Request failed.');
} else if (e == 'timeout') {
console.log('Request Time out.');
} else {
console.log('Unknown Error. - ' + x.responseText);
}
}
});
return false;
}
</<script>
现在,您需要仔细检查表单元素名称。在php文件中。我们来看一下。
<?php
//include_once './../../classes/Database.php'; import if you have database configurations
//session_start(); make sure to use sessions if your site using sessions
if(isset($_POST))
{
var_dump($_POST); //this will echo your form inputed data.
//if you want use one by one posted data
echo $_POST['first_name'];
echo $_POST['last_name'];
}
else
{
echo 'Data not comes here';
}
?>
这样可以帮助您完成任务。
答案 1 :(得分:0)
当您将表单元素视为查询字符串时,您不是在发出POST请求,而是发出GET请求。
将您的Ajax代码更改为:
$.ajax({
url: path,
type: "POST",
data: formData
});
更改之处:
method: 'POST'
更改为正确的属性:type: 'POST'
,它将使Ajax请求发出POST请求,而不是默认的GET。data: {formData: formData}
更改为data: formData
。序列化数据后,无需将其发布为json。如果您想使用$.post
,请使用:
$.post(path, formData);
请注意,上述$.ajax
和$.post
的请求都会发出相同请求。
现在,在您的PHP代码中,您可以访问以下值:
$calcOwnership = $_POST['calc-ownership'];
...获取发布的数据。
我建议您阅读有关所用方法的文档:
答案 2 :(得分:-1)
我可能误解了您的问题,但是在php中,您可以使用$ _POST ['variable_name']从发布中获取值。
<?php
$documents_count = $_POST['documents_count']
?>
实际上,这在您的url中不是查询,而是变量。很抱歉,如果不是您要的。