2012-07-18 70 views
1

$alt是所选备选ID的值。我从 $_GET['alternative'];得到它们,[备选]是复选框的名称。从问题2 PHP复选框的值

例如,如果我选择A,B,C从问题1和B,C:

<input type="checkbox" name="alternative['.$row_q['question_id'].']" value="'.$row['alternative_id'].'">'.$row['alternative'].'</input> 

因此,我通过写

$alt = $_GET['alternative']; in another page.<br> 

的问题是得到的值然后我得到这样的print_rArray ([1] => 40 [2] => 7),你看到我从问题#1中只得到C,[1] => 40,它的问题ID是一个关键字,这是问题#1中的最后一个。我没有从第1个问题得到A和B只有C.我的意思是[1]是问题ID,并且=> 40是alternative_id但是问题#1的最后一个选择的替代方案。 ,我从问题#2得到C [2] => 7,这是问题#2的最后一个选择,它是问题ID。

我的目标是这样的: 我在我的问题表中有一个名为alt_id的列。 我的问题表是这样的: Q_idquestionalt_id

让我们的问题NR你选择了A,B和C女巫替代的ID是10,30,40 现在我想与破灭逗号收集他们()并把它们写为10,30,40,并把它们列在alt_id问题ID NR的第1行

Q_id  question           alt_id 
1   Chose some equation to get 20      10,30,40 
2   What's a synonym of handsome?      60,7 
3   ................................................. 89,6,50,30 

我希望他们这样

ARRAY([1]=>10,30,40 [2]=>60,7 [3]=>89,6,50,30) 

然后我想更新问题表像这样的(当然alt_id是NULL从一开始)

foreach($alt AS $key=>$alternativ){ 
    $query = 'UPDATE question SET alt_id = '.alternative.' WHERE q_id = '.$key.' '; 
    $result = mysql_query($query); 
    } 

所以我的问题是,我怎么可以让他们这样ARRAY([1]=>10,30,40 [2]=>60,7 [3]=>89,6,50,30 and so on….

+0

感谢您重新格式化的问题,Necrolis!我现在看到我的回答包括OP所需要的信息,而之前我只希望在黑暗中进行刺探! – dotancohen 2012-07-18 10:43:36

回答

0

在你的HTML代码,你需要命名每个复选框就好像它是一个PHP阵列的附加构件,像这样:

<input type="checkbox" name="alternative[]" value="10" />A <br /> 
<input type="checkbox" name="alternative[]" value="20" />B <br /> 
<input type="checkbox" name="alternative[]" value="30" />C <br /> 

然后,在PHP:

$alternatives = implode(' ',$_GET['alternative']); 

编辑:你可能想要做一个数组的数组:

<input type="checkbox" name="alternativeA[][]" value="10" />A1 <br /> 
<input type="checkbox" name="alternativeA[][]" value="20" />B1 <br /> 
<input type="checkbox" name="alternativeA[][]" value="30" />C1 <br /> 

<input type="checkbox" name="alternativeB[][]" value="40" />A2 <br /> 
<input type="checkbox" name="alternativeB[][]" value="50" />B2 <br /> 
<input type="checkbox" name="alternativeB[][]" value="60" />C2 <br /> 

<input type="checkbox" name="alternativeC[][]" value="70" />A3 <br /> 
<input type="checkbox" name="alternativeC[][]" value="80" />B3 <br /> 
<input type="checkbox" name="alternativeC[][]" value="90" />C3 <br /> 
+0

谢谢你dontancohn为你的qick响应,但我从我的数据库中得到我的问题和替代品一个问题和另一个替代品..像这样: – 2012-07-18 10:43:28

+0

$ sql_q =“选择*从问题WHERE title_id =” 。$的title_id。“”; $ res_q = mysql_query($ sql_q); ($ row_q = mysql_fetch_array($ res_q)){ $ q_id = $ row_q ['q_id']; $ sql_a =“SELECT alt_id,alt,q_id FROM ice_alternative WHERE q_id =”。$ q_id。“”; $ res_a = mysql_query($ sql_a); ($ row_a = mysql_fetch_array($ res_a)){ $ alt_id = $ row_a ['alt_id']; ?> ]”value =“<?= $ row_a ['alt_id']?>”/><?= $ row_a ['alt']?>

<?php}} – 2012-07-18 10:48:01

+0

请在问题中正确设置格式的信息!它在我看来你正试图'填充'HTML复选框名称的[]位,不这样做。您不能在HTML复选框中使用关联数组,只能使用数字数组(至少在PHP中)。 – dotancohen 2012-07-18 10:55:16