jquery.serialize()之后如何处理php
好吧,不知何故,我最难弄明白这一点,所以我想用一个表单调用ajax,并使用jquery用.serialize()对其进行序列化。发送到php的数据如下所示jquery.serialize()之后如何处理php,php,jquery,forms,serialization,form-submit,Php,Jquery,Forms,Serialization,Form Submit,好吧,不知何故,我最难弄明白这一点,所以我想用一个表单调用ajax,并使用jquery用.serialize()对其进行序列化。发送到php的数据如下所示 key1=value&key2=value2&key3=value3 var formSubmit = $(this).serialize(); $.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit} 我正在使用post请求。它看起来很简单,但不知何
key1=value&key2=value2&key3=value3
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
我正在使用post请求。它看起来很简单,但不知何故,我很难弄清楚如何访问这些键/值对,我不能在上使用explode()&因为这会让我
[0] => key1=value1
[1] => key2=value2
[2] => key3=value3
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
我不能在php中使用$\u POST['key1']或$\u GET['key1']来访问这些值。我该怎么办!!!谢谢
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
作为一个附带问题,我注意到。serilize()将换行符替换为%0A,将空格替换为+,如何用php解码这些值?再次感谢
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
编辑:
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
嘿,jquery代码是相当基本的:
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
尝试在jQuery中使用json,然后在php中使用json_解码
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
formInfo
索引中
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
print_r( $_POST['formInfo'] );
echo $_POST['formInfo']['key1'];
如果您使用jQuery的Ajax功能提交表单数据,那么使用
.serialize()
应该不会有问题。服务器应自动查看并解码帖子内容
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
作为演示,请参见以下代码:
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
HTML
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
<form id="category-dynamic" class="dynamic">
<fieldset id="inner-fieldset">
<legend id="new-category">
<label for="category-name">Category Name: </label>
<input type="text" name="category-name" value="" />
</legend>
<ul id="category-fields">
<li>
<label>Field #1:</label><br />
<input type="text" name="fields[]" value="" />
</li>
<li>
<label>Field #2:</label><br />
<input type="text" name="fields[]" value="" />
</li>
</ul>
</fieldset>
</form>
<h3>POST Result</h3>
<pre></pre>
编辑
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
以及processor.php文件内容:
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
var formSubmit = $(this).serialize() + "&formSubmit=true";
$.post('ajax.php', formSubmit);
您将获得相同的效果,服务器将能够在无事故的情况下扩展POST变量
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
编辑3
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
请参见此示例:
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
其中代码为:
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
POST Result
category-name=&fields%5B%5D=&fields%5B%5D=&formSubmit=true
Array
(
[category-name] =>
[fields] => Array
(
[0] =>
[1] =>
)
[formSubmit] => true
)
请注意,在串行数据中添加了“&formSubmit=true”
。这将从PHP页面输出:
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
$(document).ready(function(){
var serial = $('#category-dynamic').serialize();
$('pre').html(serial);
$.post("http://jfcoder.com/test/processor.php", {"formSubmit":"true","serial":serial}, function(data){
$('pre').html($('pre').html()+"\n\n"+data);
});
});
编辑4
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
这将使用您描述的方法。看到区别了吗
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
POST Result
category-name=&fields%5B%5D=&fields%5B%5D=
Array
(
[formSubmit] => true
[serial] => category-name=&fields%5B%5D=&fields%5B%5D=
)
输出
var formSubmit = $(this).serialize();
$.post('ajax.php',{"formSubmit": "true", "formInfo": formSubmit}
如何将变量发送到PHP?发布该代码(您的AJAX代码)。您可以显示发送请求的javascript语句吗?例如,我为另一个页面创建了此代码。查看加载的内容:@Ben-将该代码添加到您的问题中。您不需要在php中解码任何内容,只需提供您的javascript代码,我相信您在序列化中遇到了一些问题,应该可以正常工作。JSON只是向服务器提交数据的另一种方式,它不应该“修复”这个问题。它会修复,正如结果一样,我们将在JS和PHP中使用单个对象。它只是发送数据的另一种方式。@Ben-请参阅编辑4了解您的使用与我的不同之处。我认为您是对的,我发送post变量的方式非常混乱,将其全部作为一个变量发送会使其更加平滑。成功了!!!非常感谢。我也刚刚知道。哇,你真的帮了我很多忙!再次感谢你,伙计。@Ben-没问题。您可能会阅读jQuery和,因为有一天您可能会需要它们。