2012-07-18 42 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