【问题标题】:Unable to send array through Jquery.post无法通过 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吗?

标签: php jquery arrays post


【解决方案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 我做到了,但仍然失败:-(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
  • 2023-04-04
  • 2013-04-02
相关资源
最近更新 更多