Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅接收数据库中动态创建输入字段的数组符号,而不接收Codeigniter中的输入值_Php_Arrays_Database_Codeigniter_Dynamic - Fatal编程技术网

Php 仅接收数据库中动态创建输入字段的数组符号,而不接收Codeigniter中的输入值

Php 仅接收数据库中动态创建输入字段的数组符号,而不接收Codeigniter中的输入值,php,arrays,database,codeigniter,dynamic,Php,Arrays,Database,Codeigniter,Dynamic,在这里,为了接收数组字符串值,我使用了动态创建的输入字段。我没有收到任何错误日志,但在提交后只收到数组符号([])。在控制器上,我使用了foreach循环 **查看表单** [动态创建的输入字段] At数据库接收到的数组表示法 [数据库数组表示法视图] 查看表单时 $(文档).ready(函数() { var services_html=“”+ “请使用以下代码。系统返回空数组,因为您使用了$vacancyDtls=array() 请使用下面的代码,让我知道 $sName = $this-&g

在这里,为了接收数组字符串值,我使用了动态创建的输入字段。我没有收到任何错误日志,但在提交后只收到数组符号([])。在控制器上,我使用了foreach循环

**查看表单** [动态创建的输入字段]

At数据库接收到的数组表示法 [数据库数组表示法视图]

查看表单时

$(文档).ready(函数()
{
var services_html=“”+

“请使用以下代码。系统返回空数组,因为您使用了$vacancyDtls=array()

请使用下面的代码,让我知道

$sName = $this->input->post('name_ofpost');
$sNo  = $this->input->post('no_ofpost');
$vacancyDtls = array();
$count = count($sName);
for($i=0;$i<$count;$i++)
            {
            $vacDtls[$i] = array(
                'name_ofpost' => $sName[$i],
                'no_ofpost' => $sNo[$i]
            );
        }
$vacancyDtls = json_encode($vacancyDtls);
$sName=$this->input->post('name_of post');
$sNo=$this->input->post('no_of post');
$vacancyDtls=array();
$count=count($sName);
对于($i=0;$i$sName[$i],
'no_of post'=>sNo$i]
);
}
$vacancyDtls=json_encode($vacancyDtls);

控制器上有两件事需要修复

首先,当您想要从输入中检索值时,您只传递您在输入名称上使用的键值。在您的情况下,您在前端使用了
,因此您选择的键值是
name\u of post
,而不是
name\u of post[]

在从post输入检索值的行中,从键名中删除
[]

$sName = $this->input->post('name_ofpost');
$sNo  = $this->input->post('no_ofpost');
其次,在一个空数组中为每个数组使用

$vacancyDtls = array(); //empty array
foreach($vacancyDtls as $vacDtls) {...} //there is nothing to foreach
在$sName或$sNo上使用count函数代替它。在使用count函数之前,您需要确保变量是数组,否则,您将从收到的警告消息中获得此信息。您可以通过以下方式完成此操作:

    // I assume you need both variables to be on the same size
    if(is_array($sName) && is_array($sNo)) { 
       $count= count($sName);
       $vacancyDtls = array();
       //from here you add a for loop and extract the values from the input variables
       for($i=0;$i<$count;$i++) {
            $vacDtls[$i] = array('name_ofpost' => $sName[$i],
                                 'no_ofpost'   => $sNo[$i]);
        }
    } else {
        //Make sure something came from the post or get resquest you just did from the front-end. 
        var_dump($this->input->post()); // will print every post parameter sent to the controller
        var_dump($sName);
        var_dump($sNo);
    }
//我假设您需要两个变量的大小相同
if(is_数组($sName)&&is_数组($sNo)){
$count=count($sName);
$vacancyDtls=array();
//从这里添加for循环并从输入变量中提取值
对于($i=0;$i$sName[$i],
'no_of post'=>sNo[$i]);
}
}否则{
//确保有东西是从帖子里来的,或者是从前端得到你刚刚做过的重新任务。
var_dump($this->input->post());//将打印发送到控制器的每个post参数
var_dump($sName);
var_dump($sNo);
}
在else语句print_r或var_dump上,转储输入以检查是否有来自刚执行的请求的内容,这是调试发送到控制器的内容的一种方法

前端代码没有显示您是如何发出请求的。不清楚您是在进行ajax调用还是在使用表单,还是在执行post或get请求。如果这是get请求,请使用$this->input->get('key name')


调试前端并确保使用的函数正在向请求传递某些信息。

错误-2018-09-10 07:27:03-->严重性:警告-->计数():参数必须是实现可计数的数组或对象

出现错误是因为我没有为控制器功能声明数组,并且我已经更改了代码,代码运行正常

控制器功能

//输入字段中的输入值
$sName=$this->input->post('name_of post');
$sNo=$this->input->post('no_of post');
//在这里声明数组
$vacancyDtls=array();
$vacancyDt=array();
//对数组使用计数函数
if(is_数组($sName)和&is_数组($sNo)){
$count=count($sName);
对于($i=0;$i<$count;$i++)
{
$vacancyDt[$i]=数组(
'name_of post'=>sName[$i],
'no_of post'=>sNo$i]
);
}
}
//将json格式转换为数据库

$vacancyDtls=json_encode($vacancyDt);
错误日志--
错误-2018-09-10 07:27:03-->严重性:警告-->计数():参数必须是实现可计数的数组或对象
我使用的是唯一的表单来插入值,而不是使用AJAX。此外,我尝试按照您的建议使用代码。您可以编辑您的问题并包括表单标记吗?您在表单、post或get中使用的方法是什么?您可以使用var_dump$this-input-post()吗和$this-input-get()并在此处发布结果先生,我编辑了我的代码。在控制器和视图部分。正如您所建议的,我使用了代码,但没有收到所需的结果,请您将我的答案标记为正确。我很高兴能够帮助您。我对您的代码做了一些更改,并使其正确。谢谢