我试图尝试四个小时以获得不同名称的复选框值,我真的希望你们能帮我解决这个问题。提前致谢。这是我的问题:PHP:使用不同的名称/编号的多个复选框使用PHP
我有一个形式,有一些问题和选择哪个问题有自己的ID和每个替代品也有自己的ID,当然,每个替代品也有一个问题ID属于题。我有一个问题表和另一个表的替代品。 例如:
1)之所以选择一些方程得到20(比方说,这个问题得到question_id = 1)
A)5 * 4(比方说,这一个被alternative_id = 10)
B)6 * 5(alternative_id = 20)
C)100/5(alternative_id = 30)
d)4 * 5(和假设这一个被alternative_id = 40)
关当然,所有这些的上面会有question_id = 1
2)什么是英俊的代名词? (比方说,这个问题得到question_id = 2)
A)丑(比方说,这一个被alternative_id = 40)
B)美貌(alternative_id = 60)
C)好看(alternative_id = 7)
d)类(alternative_id = 5)
当然,所有这些上面会有question_id = 2
现在我的问题是如何得到的值与他们的问题-ID的那些替代-ID?
让我们从问题Nummber 1 => A,C和D(意思是id 10,30,40) 以及问号2 => B和C(这意味着id,60,7)中进行选择。 我想要获得这些价值,当我点击提交按钮,在这里,这是我在做什么。
如果我用这个在我的复选框形式
print '<input type="checkbox" name="alternative['.$row_q['question_id'].']" value="'.$row['alternative_id'].'">'.$row['alternative'].'</input>';
<input type="submit" name="submit" value="OK" />
当我提出我使用此代码:
$alt = $_GET['alternative'];
if (isset($_REQUEST['submit'])&& $_REQUEST['submit'] != "") {
if(isset($_GET['alternative'])&& $_GET['alternative'] != ''){
foreach($alt AS $key=>$alt3){
echo $key."-".$alt3."<br>";
}
}
}
最后我所得到的是选择每个问题的选择。在这种情况下,使用键(question_id's)的40和7, 这意味着40是问题1中替代D的ID,而7是问题2中替代C的ID。
如果我使用复选框的名称,索引是这样的:
print '<input type="checkbox" name="alternative[]" value="'.$row['alternative_id'].'">'.$row['alternative'].'</input>';
然后我得到的所有选定的ID一起像一堆,但没有钥匙的(带出来question_id)。 我的意思是一起针对问题1号和2号这样的:
,而且很难知道,排序和插入其中的ID属于哪个问题。我觉得我必须在数组中循环数组,但我真的不知道如何去做。 我怎样才能得到所选择的问题的每个部分的价值?再次感谢您的帮助,我希望你们明白我的意思。
======================
$alt
是被选择的替代ID的值。我从 $_GET['alternative'];
得到它们,[备选]是复选框的名称。从问题2
例如,如果我选择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_r
: Array ([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_id
,question
,alt_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….
======= =======二uppdating:==========
要gererait从我的数据库的公益价值我使用这个脚本:(我会告诉你sourge页面太):
$sql_q = " SELECT * FROM questions WHERE title_id = ".$title_id." ";
$res_q= mysql_query($sql_q);
while($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);
while ($row_a = mysql_fetch_array($res_a)){
$alt_id = $row_a['alt_id']; ?>
<input type="checkbox" name="alternative[<?=$row_q['q_id']?>]" value="<?=$row_a['alt_id']?>"/><?=$row_a['alt']?></input><br /><br />
<?php
}
}
而且当我看到sourge页它显示我是这样的:
<form action="st_q2.php" name="reply2" method="POST" enctype="multipart/form-data">
1) Chose some equation to get 20
<input type="checkbox" name="alternative[1]" value="10"/>5*4</input><br /><br />
<input type="checkbox" name="alternative[1]" value="20"/>6*5</input><br /><br />
<input type="checkbox" name="alternative[1]" value="30"/>100/5</input><br /><br />
<input type="checkbox" name="alternative[1]" value="40"/> 4*5</input><br /><br />
<hr /><br><br><br>
2) What's a synonym of handsome?<br><br>
<input type="checkbox" name="alternative[2]" value="50"/>Ugly</input><br /><br />
<input type="checkbox" name="alternative[2]" value="60"/>Fine-looking</input><br /><br />
<input type="checkbox" name="alternative[2]" value="7"/>Good-looking</input><br /><br />
<input type="checkbox" name="alternative[2]" value="5"/>Kind</input><br /><br />
<hr />
<input type="submit" name="submit" value="OK" />
</form>
然后在我的下一个页面(st_q2.php),我写我的代码是这样的:
$alt = $_POST['alternative'];
if (isset($_REQUEST['submit'])&& $_REQUEST['submit'] != "") {
if(isset($_POST['alternative'])&& $_POST['alternative'] != ''){
foreach($alt AS $key=>$alternativ){
$query = 'UPDATE question SET alt_id = '.alternative.' WHERE q_id = '.$key.' ';
$result = mysql_query($query);
}
==== =============第四版============
如果我提出问题1的所有字段的名称,如您所说:name="alternative[1][]"
然后我得到
1) Chose some equation to get 20
<input type="checkbox" name="alternative[1][]" value="10"/>5*4</input>
<input type="checkbox" name="alternative[1][]" value="20"/>6*5</input>
<input type="checkbox" name="alternative[1][]" value="30"/>100/5</input>
<input type="checkbox" name="alternative[1][]" value="40"/> 4*5</input>
<hr /><br><br><br>
2) What's a synonym of handsome?<br><br>
<input type="checkbox" name="alternative[1][]" value="50"/>Ugly</input>
<input type="checkbox" name="alternative[1][]" value="60"/>Fine-looking</input>
<input type="checkbox" name="alternative[1][]" value="7"/>Good-looking</input>
<input type="checkbox" name="alternative[1][]" value="5"/>Kind</input>
<hr />
<input type="submit" name="submit" value="OK" />
</form>
如果我给的名字都是我的name="alternative[<?=$row_q['q_id']?>][]"
区,然后我得到
<input type="checkbox" name="alternative[1][]" value="10"/>5*4</input>
<input type="checkbox" name="alternative[1][]" value="20"/>6*5</input>
<input type="checkbox" name="alternative[1][]" value="30"/>100/5</input>
<input type="checkbox" name="alternative[1][]" value="40"/> 4*5</input>
<hr /><br><br><br>
2) What's a synonym of handsome?<br><br>
<input type="checkbox" name="alternative[2][]" value="50"/>Ugly</input>
<input type="checkbox" name="alternative[2][]" value="60"/>Fine-looking</input>
<input type="checkbox" name="alternative[2][]" value="7"/>Good-looking</input>
<input type="checkbox" name="alternative[2][]" value="5"/>Kind</input>
如果我给的名字我所有的字段name="alternative[<?=$row_q['q_id']?>][<?=$row_a['alt_id']?>]"
然后我得到
<input type="checkbox" name="alternative[1][10]" value="10"/>5*4</input>
<input type="checkbox" name="alternative[1][20]" value="20"/>6*5</input>
<input type="checkbox" name="alternative[1][30]" value="30"/>100/5</input>
<input type="checkbox" name="alternative[1][40]" value="40"/> 4*5</input>
<hr /><br><br><br>
2) What's a synonym of handsome?<br><br>
<input type="checkbox" name="alternative[2][50]" value="50"/>Ugly</input>
<input type="checkbox" name="alternative[2][60]" value="60"/>Fine-looking</input>
<input type="checkbox" name="alternative[2][7]" value="7"/>Good-looking</input>
<input type="checkbox" name="alternative[2][5]" value="5"/>Kind</input>
但还是老样子,我可以”吨让他们作为ARRAY([1]=>10,30,40 [2]=>60,7 [3]=>89,6,50,30)
即使我跑内部选择foreach loop with implode(','$_POST['alternative'])
我想要的是更新列alt_id我问题表。从一开始的问题表是这样的:
Q_id 问题 alt_id
1中选择一些方程得到20 空
2什么是帅气的代名词? 空
3 ............................... .................. 空
但后来uppdating我希望它看起来像这样经过如下:
Q_id 问题 alt_id
1中选择一些方程以获得20 10,30,40
2什么是英俊的代名词? 60,7
3 ............................. .................... 89,6,50,30
什么是$ alt2?它在哪里设置? – octern 2012-07-17 21:26:37
谢谢Octern,我的意思是$ alt不是$ alt2。但是也会出现同样的问题。 – 2012-07-17 21:55:12
$ alt的确切内容是什么?请使用print_r()显示它。 – octern 2012-07-18 03:16:21