[英]passing ajax associative array to php associative array
我試圖通過$ .ajax方法將表單值傳遞給PHP。 我在html中有以下表格:
<form>
<p>
<label for="login">User ID:</label>
<input type="text" name="login" id="login" value="user name">
</p>
<p>
<label for="password">Password:</label>
<input type="password" name="password" id="password" value="password">
</p>
</form>
和ajax:
$("form").submit(function(event) {
var formInput = $('form').serialize();// tried with serializeArray() also
var request = $.ajax({
type: "POST",
url:"../some.php",
data: {formInput:formInput},
statusCode: {
404: function() { alert("file not found");}}
});
的PHP:
<?
$data = $_POST['formInput'];
$data = array();
parse_str($_POST, $data);
print_r($data);
?>
在控制台上打印:
(
[Array] =>
)
我想要的是讓$ data成為一個關聯數組,如:
$data = array(
'login' => 'foo'
'password' => 'bar'
);
但是好像$ data正在作為字符串處理...預先謝謝!
使用data: $('form').serializeArray()
代替data: {formInput:formInput},
然后在php端, $_POST
只是您想要的數據。
代替這個:
$("form").submit(function(event) {
var formInput = $('form').serialize();// tried with serializeArray() also
var request = $.ajax({
type: "POST",
url:"../some.php",
data: {formInput:formInput},
statusCode: {
404: function() { alert("file not found");}}
});
用這個 :
$("form").submit(function(event) {
var formInput = $('form').serialize();// tried with serializeArray() also
var request = $.ajax({
type: "POST",
url:"../some.php",
data: formInput,
statusCode: {
404: function() { alert("file not found");}}
});
我們想要的是序列化為json對象,然后可以對其進行解碼。 使用此 .serializeObject
可以訪問.serializeObject
。
$("form").submit(function(event) {
var formInput = $('form').serializeObject();
formInput = JSON.stringify(formInput);
var request = $.ajax({
type: "POST",
url:"../some.php",
data: {formInput:formInput},
statusCode: {
404: function() { alert("file not found");}}
});
然后在php端,您可以輕松地解碼JSON
$data = json_decode($_POST['formInput'], true);
通過出色的答復,我弄清楚了我的問題所在。 當我提交POST時,我正在將數組放入數組中。
以下ajax代碼:
$("form").submit(function(event) {
var formInput = $('form').serialize();// tried with serializeArray() also
var request = $.ajax({
type: "POST",
url:"../some.php",
data: {formInput:formInput},
statusCode: {
404: function() { alert("file not found");}}
});
更改為:
$("form").submit(function(event) {
var formInput = $('form').serializeArray();
var request = $.ajax({
type: "POST",
url:"../some.php",
data: formInput,
statusCode: {
404: function() { alert("file not found");}}
});
PHP更改為:
<? $data = $_POST;
print_r($data); ?>
在cosole上打印的正是我想要的:
Array
(
[login] => admin
[password] => qwerty123!
)
謝謝大家的快速反應
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.