无法通过 Jquery.post 发送数组
Posted
技术标签:
【中文标题】无法通过 Jquery.post 发送数组【英文标题】:Unable to send array through Jquery.post 【发布时间】:2015-12-02 00:14:42 【问题描述】:所以,我有一个输入值数组:
<input type="text" placeholder="write your Question" id="question[]" value="" />
我正在通过此代码发送此输入:
$.post("function.php",Question:$("#question").serialize(),function(data)
$("#construct").append(data);
alert('done');
);
但是当我尝试在我的 PHP 中使用这些值时,我遇到了一些错误。
PHP(function.php):
$Question=htmlentities($_POST['Question'],ENT_QUOTES,"UTF-8");
//line 13
$Quiz->InsertQuestion($Q_id,$Question[0]);
//line 14
$Quiz->InsertQuestion($Q_id,$Question[1]);
错误提示:
注意:未初始化的字符串偏移量:第 13 行的 E:\program file\program\xampp\htdocs\QMS\admin\function.php 中为 0
注意:未初始化的字符串偏移量:E:\progrram file\program\xampp\htdocs\QMS\admin\function.php 第 14 行中的 1
提前致谢。
【问题讨论】:
var_dump($_POST['Question']);
顺便说一句,question[]
和 question
是不同的 ID。
@u_mulder 我使用了var_dump
,我得到了:string(0) ""
.btw 我想当我想发送一个数组时,我应该使用question[]
!
你能发布你所有的html吗?
【参考方案1】:
正如我所说,id="question[]"
和 id="question"
是不同的 ID。
如果您想将项目作为数组发送,您应该使用name
属性和[]
:
<input type="text" placeholder="write your Question" name="question[]" value="" />
<input type="text" placeholder="write your Question" name="question[]" value="" />
jquery:
// select all fields which names start with "question"
Question:$("[name^='question']").serialize()
甚至class
:
<input type="text" placeholder="write your Question" value="" class="question" />
<input type="text" placeholder="write your Question" value="" class="question" />
jquery:
Question:$(".question").serialize()
【讨论】:
当我使用.serialize()
时似乎无法获得完整的值【参考方案2】:
将输入的 id 从“question[]”更改为“question”。
【讨论】:
如果他想通过一系列问题,为什么要改变这一点? 因为它是一个DOM内容的id。 @Ahmadbaba46 我做到了,但仍然失败:-(以上是关于无法通过 Jquery.post 发送数组的主要内容,如果未能解决你的问题,请参考以下文章