表单中的数组值始终是 CI 中表单验证的问题。现在我必须输入多个值,这些数组值将存储在 DB 中。现在用户可以错误地将一些字段保留为空白,如下所示的链接:
我使用本教程在+按钮单击时添加输入框。提交时,空白值将被截断,然后非空数组值将添加到数据库中。我使用原生 PHP 中的示例程序进行了尝试,但无法在 CI 中实现。
我在原生 PHP 中使用以下代码在 DB 中插入值,截断空值:
<?php
include 'sql_connect.php';
$str = array();
for($i=0;$i<count($_POST["txtSiteName"]);$i++)
{
$str[] = $_POST["txtSiteName"][$i];
}
$str = array_filter($str, function($item) {if(!is_null($item)) return $item;});
foreach($str as $loop_str)
{
$arr_str[] = $loop_str;
}
for($k = 0; $k<count($arr_str);$k++)
{
mysql_query("INSERT INTO sitename (name) VALUES ('".$arr_str[$k]."')") or die(mysql_error());
}
print_r($arr_str);
?>
我怎样才能在 CI 中实现这一点?我尝试使用回调函数,但数组值没有传递给回调函数。
编辑:
下面的代码显示了我的回调函数:
在输入 3 个 url 时,它被调用 3 次。这正常吗?我的 array_walk 的回调函数也不起作用。在另一个回调函数中调用回调函数是不可能的?
public function null_check()
{
$urls = $this->input->post('link_name');
array_walk($urls, 'prepurl');
var_dump($urls);
}
preurl 函数:
public function prepurl($item, $key)
{
$item = "http://".$item;
}