2013-02-15 91 views
0

我选择复选框,并希望保存在当前页码为$_GET['page_no']的关联数组中,因为它是索引,但只有1个值进入,为什么没有其他值?如何为每个创建一个关联数组?

$pageno = $_GET['page_no']; //Say page no is 1 
$_SESSION['selected_vals'] = array(); 
foreach($_POST['record_num'] as $throw_rec_nums) { 
    $_SESSION['selected_vals'][$pageno] = $throw_rec_nums; 
} 

我希望

$_SESSOION['selected_val'] (
    [1] => 24 
    [1] => 46 
    [1] => 56 
) 

但我只得到24即使3个复选框被选中

注意什么:$ _GET [ 'page_no']返回为数组

+0

你能否澄清“但只有1值变为”部分? – mkaatman 2013-02-15 17:07:17

+0

请发布您复选框的HTML。 – FabianoLothor 2013-02-15 17:07:29

+0

@FabianoLothor如果我正在使用'$ _GET ['record_num']'很显然我正在使用'' – 2013-02-15 17:10:10

回答

3

$pageno不递增。为了将多个值添加到数组中,它需要在循环中递增。

一种解决方案是这样的:

$_SESSION['selected_vals'][$pageno][] = $throw_rec_nums; 

这样,所有的记录号将被保存到在指定页码的阵列。

+0

好的,但创建一个数组内的数组,并使用递增索引,任何想法,我可以保持1所有?谢谢+1 – 2013-02-15 17:12:51

+0

@CreepyFrog:数组每个键只能有*一个*值。你想要的是不可能的。 – 2013-02-15 17:18:56

+0

好的,谢谢:) – 2013-02-15 17:29:02

0

您不能将数组用作数组索引。你将不得不遍历$您做生意太,例如旁边():

$array[current($pageno)] = ...; 
next($pageno); 

请注意,如果您确保室温是$您做生意实际上是一个数组,包含足够的元素,这只会工作。

+0

我正在使用foreach,所以返回的值不是数组:) – 2013-02-15 17:19:24

+0

但是,你不会foreach over $ pageno,并说这是一个数组。那么,现在我看到你的期望了,这是不可能的。钥匙是独特的。 – 2013-02-15 17:52:05

2

只有1个值会进入,因为您正在每个foreach循环中替换$ _SESSION ['selected_vals'] [$ pageno]值。

尝试创建一个计数器来索引它

它是一个选项

$_SESSION['selected_vals'] = array(); 
$_SESSION['selected_vals'][$pageno] = array(); 
foreach($_POST['record_num'] as $throw_rec_nums) { 
    $_SESSION['selected_vals'][$pageno][] = $throw_rec_nums; 
} 
+2

不可能用1索引所有...(想想我)如果所有索引都在同一个关键字中,如何访问某个值?像你期望的那样,值可能会返回$ _SESSION ['selected_val'] [1]? – Heberfa 2013-02-15 17:19:10

+0

好的,谢谢:) – 2013-02-15 17:28:37

相关问题