【发布时间】:2013-01-25 01:18:10
【问题描述】:
表单中的数组值始终是 CI 中表单验证的问题。现在我必须输入多个值,这些数组值将存储在 DB 中。现在用户可能会误将某些字段留空,如下链接所示:
Values in the array on submission.
我使用this教程在+按钮点击添加输入框。提交时,空白值将被截断,然后非空数组值将添加到数据库中。我在原生 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 个网址时,它会被调用 3 次。这正常吗? 我的 array_walk 的回调函数也不起作用。不能在另一个回调函数中调用回调函数?
public function null_check()
{
$urls = $this->input->post('link_name');
array_walk($urls, 'prepurl');
var_dump($urls);
}
预url函数:
public function prepurl($item, $key)
{
$item = "http://".$item;
}
【问题讨论】:
-
您是否在添加文本框?
-
您能展示您尝试过的
CodeIgniter代码吗? -
@SheikhHeera 没有什么新鲜事。我刚刚创建了一个回调函数
public function null_check($str)并将 $str 作为参数提供给它。添加了多个值,但它仅在 $str 中获取单个字符串,而不是完整的数组。在回调函数中,我将添加上述代码,如本机 PHP 中的问题中一样,不包括 DB 查询。但只有当数组可用时我才能这样做。 -
你是静态生成还是动态生成这些文本字段
-
@Venkat 在按钮点击事件上动态。
标签: php codeigniter validation