gpt4 book ai didi

javascript - 无法使用ajax将javascript数组传递给php

转载 作者:行者123 更新时间:2023-11-30 17:49:32 25 4
gpt4 key购买 nike

我有以下代码使用 ajax 将 Javascript 数组传递给 PHP:

在 HTML 中:

echo "<input type=\"hidden\" id= \"que_id\" name= \"que_id[]\" value=".$questions['que_id'].">";

这是一个循环。

在 JavaScript 中:

var que_id_array = new Array();
$('input[name="que_id[]"]').each(function(){
que_id_array.push($(this).val());
});

AJAX 调用:

$.ajax({
type:"POST",
url: 'questionmastermodify.php',
data: { que_id:que_id_array},
success: function(data) {
$('.my_update_panel').html(data);
$('#overlay').fadeOut();
}
});

在 PHP 中:

$que_id = $_REQUEST['que_id'];

echo count($que_id);

计数显示 1 而不是数组的大小,而在 Javascript 中控制台显示:

console.log(que_id_array);

输出:

["151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200"]

我被困住了,因为我在 PHP 中需要这个数组,但无法将这个数组从 JS 传递到 PHP。

提前致谢....

桑迪505

最佳答案

我对您的代码进行了快速测试...并进行了一些更改,它适合我。
看看你的代码,特别是 loop当你创建 <input>字段...

还有..在loop你有一个ID<input> ...那一点都不好!..将其更改为class例如……

举个例子,这是我试过的:

主要的 PHP

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
$('#theForm').submit(function(event) {
event.preventDefault();
createTheArray();
});
});
function createTheArray(){
// Create the Array
var que_id_array = new Array();
$('input[name="que_id[]"]').each(function(){
que_id_array.push($(this).val());
});
console.log(que_id_array); // output ["151", "152", "153"]
sendTheForm(que_id_array); // do the ajax call
}
function sendTheForm(que_id_array){
// AJAX Call
$.ajax({
type:"POST",
url: 'questionmastermodify.php',
data: { que_id:que_id_array},
success: function(data) {
$('.my_update_panel').html(data);
}
});
}
</script>
</head>
<body>
<form id="theForm">
<?php
// your original Array
$arrayName = array(
array('que_id' => '151'),
array('que_id' => '152'),
array('que_id' => '153')
);
foreach ($arrayName as $key => $questions) {
echo "<input type='text' class='que_id' name='que_id[]' value='{$questions['que_id']}'>";
}
?>
<input type="submit" value="send" />
</form>
<div class="my_update_panel">result will be loaded here...</div>
</body>
</html>

还有你的questionmastermodify.php PHP文件

<?PHP
$que_id = $_REQUEST['que_id'];
echo '<pre>';
print_r($que_id);
echo '</pre>';
?>

结果

form submit 之后.. HTML 将打印出来:

<pre>Array
(
[0] => 151
[1] => 152
[2] => 153
)
</pre>

并且在 console.log();

["151", "152", "153"]

试试吧,祝你好运!

关于javascript - 无法使用ajax将javascript数组传递给php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19356700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com