HTML / PHP - 表单输入为数组,需要逗号分隔值

时间:2018-06-07 13:56:51

标签: php jquery joomla

我有一个这样的表格:

<input name="form[AttendeesInstitution][]" type="text">
<input name="form[AttendeesInstitution][]" type="text">

当使用Firefox开发人员工具时,我可以从我的$ _POST中看到我有一个有效的值数组。我的问题是它被提交到数据库,如“Flexsus Brugsen”。我需要它是这样的逗号分隔值:“Flexsus,Brugsen”。 我试图在一个有限的Joomla组件中构建它,所以我可以在_POST之前做一些jQuery或在_POST上做一些PHP。但我找不到解决方案: - (

enter image description here

enter image description here

编辑:删除了HTML ID

4 个答案:

答案 0 :(得分:0)

请为每个元素设置不同的ID,然后您就可以使用此代码了。

以下是如何做到这一点

<?php
     $post = array(); 
     foreach($_POST as $key=>$value){
         $post[$key]= $post[$key].', '.$value;
     }
     /* Now $post will look as what you want*/
 ?>

答案 1 :(得分:0)

你可以使用php implode()函数

<?php
...
implode(",",$_POST["form"]["AttendeesInstitution"]);
...
?>

答案 2 :(得分:0)

我认为你假设$_POST被设置为

$_POST["form"]["AttendeesInstitution"][]

实际上我会想象它被设置为(我需要看到print_r($_POST)的输出是确定的。)

$_POST["form[AttendeesInstitution]"][]

因此,您访问它的方式应该是Undefined index

您有两种方法可以解决此问题

像你拥有它一样循环数组,但可能不是你想要的:

foreach($_POST["form[AttendeesInstitution]"] as $k=>$v){
    //Stuff you do here
}

或更新您的表单输入以按照您想要的方式生成数据,因为$_POST已经是数组。

<input name="[form][AttendeesInstitution][]" type="text">
<input name="[form][AttendeesInstitution][]" type="text">

我也不能100%测试这个。

答案 3 :(得分:0)

在你的joomla控制器中,你应该得到这样的数据:

$formData = $this->input->post->get('form', array(), 'array');
$attendeesInstitution = implode(',', $formData['AttendeesInstitution']);