如何在PHP中从javascript读取post url请求
我有html格式的表单输入。如何在PHP中从javascript读取post url请求,javascript,php,jquery,Javascript,Php,Jquery,我有html格式的表单输入。 然后我添加了这个javascript(jquery)笔划来读取和收集表单中的所有值或数据 var formData = $("#form").serialize(); 当我 console.log(formData); 输出将显示: 计算所有权=ooo&calc活动=usn&calc-tax-2=charge&calc bank=partners&calc who payments=client&operations\u count=0&calc命名法=slim
然后我添加了这个javascript(jquery)笔划来读取和收集表单中的所有值或数据
var formData = $("#form").serialize();
当我
console.log(formData);
输出将显示:
计算所有权=ooo&calc活动=usn&calc-tax-2=charge&calc bank=partners&calc who payments=client&operations\u count=0&calc命名法=slim&documents\u count=0&calc who docs=client&staff\u count=0&calc more%5B%5D=patent&calc more%5B%5D=Alcohold&period=&price=&price\u sber=&rate name=&email to=
然后我在jquery中找到了一个名为post的函数
$.post(路径、表单数据、成功,“json”)代码>
请求看起来像:
do.php?bank=partners
如您所见,它向mydo.php
发出post请求现在,我如何读取此查询并处理此数据 我在jquery中找到了类似于
$.post
。它是$。ajax
完整代码:
$.ajax({ url: path, method: "POST", data: {formData: formData} });
它工作得很好。但是我想使用
$。post
我现在正在看我的网址。看起来:https://stackoverflow.com?ask=32321
我需要一些类似的东西来从javascript中读取我的查询,这个url使用php我可能误解了你的问题,但在php中,你可以使用$\u post['variable\u name']从post中获取值
<?php
$documents_count = $_POST['documents_count']
?>
事实上,这在你的url中不是一个查询,都是变量。如果不是您所要求的,很抱歉。当您将表单元素视为查询字符串时,您不是在发出POST请求,而是在发出GET请求 将Ajax代码更改为:
$.ajax({
url: path,
type: "POST",
data: formData
});
改变了什么:
方法:“POST”
更改为正确的属性:键入:“POST”
,这将使Ajax请求发出POST请求,而不是默认的GETdata:{formData:formData}
更改为仅data:formData
。当您已经序列化了数据时,无需将其作为json发布$.post
,请使用:
$.post(path, formData);
需要明确的是,上面的$.ajax
和$.post
-请求将发出相同的请求
现在,在PHP代码中,您可以访问如下值:
$calcOwnership = $_POST['calc-ownership'];
…以获取发布的数据
我建议您阅读有关您正在使用的方法的文档:
- 好的,我会举例说明
如果要获取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>
函数send(){
$.ajax
({
键入:“POST”,
url:'./path/your_php_file_其中_form_data_processed.php',
数据:$(“#我的表单”).serialize(),
成功:函数(){
//成功时做你需要做的事
},
错误:函数(x,e){
//用于错误处理
如果(x.status==0){
console.log('您处于脱机状态!!-请检查您的网络');
}否则如果(x.status==404){
log('未找到请求的URL');
}否则如果(x.status==500){
log('内部服务器错误');
}else if(e=='parserrror'){
log('错误。-解析JSON请求失败');
}else if(e=='timeout'){
log('请求超时');
}否则{
console.log('未知错误。-'+x.responseText);
}
}
});
返回false;
}
你能进一步解释一下吗?如果当前请求基于POST
请求,则表单的数据不会发送回browser@NicoHaase我的意思是它向我的php发出请求,看起来就像php是如何读取这个查询的?让他们工作。例如,写在txt文件中,我已经读了你的问题好几遍了,但我仍然不知道你真正的问题是什么。请在正确的上下文中向我们展示所有相关的代码,而不是在这里或那里向我们展示一行代码。问题是,您不是在发出POST请求,而是在发出GET请求。如果您希望ajax请求是POST,那么它是类型:'POST'
,而不是method=“POST”
。好的,PHP将查询“读取”到$\u GET
和$\u POST
变量中。您可以随意使用这些,但不要使用jquery OP没有发出POST请求,因此$\u POST
-数组将为空。谢谢您的回答。但是正如我所说的,当我用$.ajax({url:path,method:post,data:{formData:formData}})替换我的$.post
时,它就起作用了代码>此案例仅适用于“.ajax”您使用的是$.ajax**我需要**$.post()方面的帮助,但感谢您的帮助,因为我收到了您的问题,您需要使用ajax将数据从前端传递到后端吗?如果需要,请使用此样式。这节省了时间。因为我以这种风格开发大型项目,而且很容易处理。我不需要ajax,我只需要使用$。post@Cengez-$.post
只是$.ajax({type:'post'})的一个简短版本
。请求将是相同的。在我的回答中,我已经发布了一些示例和解释。在我的示例中,这就是为什么我提到使用var\u dump($\u POST)代码>之后,您可以了解表单数据并逐个访问。正如您在表单元素名称中定义的。若数据到达后端,那个么你们就可以进行文件读写了。但为什么我的php$data=$\u POST['formData']$fp=fopen('log.txt','w+');fwrite($fp,$data)代码>没有写任何东西?@Cengez-请不要移动球门柱。这是您第一次提到在文件中存储任何内容。这个答案回答了您的问题,即如何发出post请求以及如何在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';
}
?>