我尝试并尝试了四个小时以获取具有不同名称的复选框的值,我真的希望你们能帮助我解决这个问题。提前致谢。这是我的问题:
我有一个表格,其中包含一些问题和备选方案,可以选择哪些问题有自己的 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 值?
让我们从问题编号 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>";
}
}
}
我得到的是每个问题的最后一个选择。在这种情况下,40 和 7 带有键(question_id's),这意味着 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 像这样:
10
30
40
60
7
而且很难知道、排序和插入哪个 id 属于哪个问题。我觉得我必须在数组中循环数组,但我真的不知道该怎么做。我怎样才能得到问题每个部分的选择的价值?再次感谢您提前提供的帮助,我希望你们明白我的意思。
=======================
$alt
是选择的替代 ID 的值。我从中得到它们
$_GET['alternative'];
,[alternative] 是复选框的名称。
<input type="checkbox" name="alternative['.$row_q['question_id'].']" value="'.$row['alternative_id'].'">'.$row['alternative'].'</input>
所以我通过写来获得价值
$alt = $_GET['alternative']; in another page.<br>
问题是:
例如,如果我从问题 1 中选择 A, B, C 和从问题 2 中选择 B , C 然后我得到print_r
这样的结果:
Array ( [1] => 40 [2] => 7 )
,你看我[1] => 40
从问题 #1 中只得到 C,它的问题 id 作为键,这是最后一个来自问题#1的一个。我没有从问题 nr 1 中得到 A 和 B 只有 C。我的意思是 [1] 是问题 id 并且 =>40 是alternative_id 但是问题 #1 的最后一个选择的替代方案。我从问题 #2 中得到 C [2] => 7
,这是问题 #2 中最后选择的问题 ID。
我的目标是这样的:我的问题表中有一个名为 alt_id 的列。我的问题表如下所示:
Q_id
, question
,alt_id
让我们问一下您选择 A、B 和 C 女巫的替代 id 是 10、30、40 现在我想用 implode() 用逗号收集它们并将它们写为 10、30、40 并将它们放在问题 id 行中的列 alt_id 中编号 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….
=============第二次更新:==========
为了从我的数据库中获取价值,我使用这个脚本:(我也会向你展示 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)
即使我在里面运行 SELECTIONforeach loop with implode(','$_POST['alternative'])
我想要的是更新问题表中的列 alt_id 。从一开始就是这样的问题表:
Q_id question alt_id
1 选择一些方程得到 20 Null
2 帅的同义词是什么?空
3 ............................................. 。 空值
但是在更新之后,我希望它看起来像下面这样:
Q_id question alt_id
1 选择一些方程得到 20 10,30,40
2 帅的同义词是什么?60,7
3 .................................................. ... 89,6,50,30