首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为单选按钮php赋值并保存到sql

为单选按钮php赋值并保存到sql
EN

Stack Overflow用户
提问于 2013-06-15 20:32:50
回答 2查看 1.6K关注 0票数 0

我有一个小问题,我在过去的16个小时里一直在努力,我可以找到解决这个问题的办法……我真的真的需要一些帮助。

我有一个基于用户ID的查询生成的表单...

代码语言:javascript
复制
ID-1 Question 1
 rad-btn ID-1 group 1 value 0 answer x
 rad-btn ID-2 group 1 value 0 answer x
 rad-btn ID-3 group 1 value 0 answer x

ID-2 Question 2
 rad-btn ID-4 group 2 value 0 answer x
 rad-btn ID-5 group 2 value 0 answer x
 rad-btn ID-6 group 2 value 0 answer x

ID-4 Question 3
 rad-btn ID-6 group 4 value 0 answer x
 rad-btn ID-7 group 4 value 0 answer x
 rad-btn ID-8 group 4 value 0 answer x

为了获得这个“表单”,我使用了如下的sql

代码语言:javascript
复制
$padreQR = mysql_query("SELECT * FROM ph_sec_preguntas WHERE s_codigo = '$secc1' ");

while ($arrayP = mysql_fetch_array($padreQR)) {
    $preguntasPP = $arrayP['pregunta_id'];
    $preguntass = mysql_query("SELECT * FROM preguntas_p WHERE question_id = '$preguntasPP' ");
    while ($q1 = mysql_fetch_array($preguntass)) {
        $qid = $q1['question_id'];
        $pp1 = $q1['question'];
        $er = $qid;
        echo '"<h3>' . $pp1 . '</h3>'; // Ya tenemos las preguntas segun el usuario
        $rrr = mysql_query("SELECT * FROM respuestas WHERE question_id = '$qid' ");
        while ($arrayRR = mysql_fetch_array($rrr)) {
            $respuestas = $arrayRR['answer'];
            $correcto = $arrayRR['correct'];


            echo '<label style="cursor:pointer;"><input type="radio" name="' . $er . '" value="' . $correcto . '">' . $respuestas . '</label>';
        }
    }
};

这可能不是最好的方法,因为它是有效的。

所以我需要保存这些信息,但不是全部,我只需要:

代码语言:javascript
复制
userID, questionID, and the answer that was selected

我的问题是,如何获得选中的单选按钮?从答案中获取ID,我不需要知道值,只需要知道选择了哪个单选按钮,这样我就可以从该按钮中获取ID,这样我就可以将其保存到SQL中,ID来自sql,值始终是1或0……

现在我只显示了3个带有多个选项的问题,但是我的想法是在一个页面中有大约20个问题……

感谢您抽出时间阅读我的问题……

EN

回答 2

Stack Overflow用户

发布于 2013-06-15 20:39:29

只需将每个值设置为ID,您就可以从$_POST数组中知道标记了哪些选项。

如下所示:

代码语言:javascript
复制
echo '<label style="cursor:pointer;"><input type="radio" name="preguntas[' . $pregunta_id . ']" value="' . $respuesta_id . '">' . $respuestas . '</label>';

然后,当你把这段代码发布到你的php脚本中时,你会得到一系列的答案。

代码语言:javascript
复制
foreach($_POST['preguntas'] as $pregunta_id => $respuesta_id){
   echo "RESPUESTA A PREGUNTA NUMERO $pregunta_id ERA $respuesta_id <br />\n";
}

诸如此类的事情。

票数 0
EN

Stack Overflow用户

发布于 2013-06-15 21:05:25

假设你有这样的表单:

代码语言:javascript
复制
<form action="test.php">
    <input type="radio" name="quest" value="q1" /> Pregunta 1<br/>
            <input type="radio" name="ansq1" value="a1" /> Respuesta 1.1<br/>
            <input type="radio" name="ansq1" value="a2" /> Respuesta 1.2<br/>
            <input type="radio" name="ansq1" value="a3" /> Respuesta 1.3<br/>
            <br/>
    <input type="radio" name="quest" value="q2" /> Pregunta 2<br/>
            <input type="radio" name="ansq2" value="a1" /> Respuesta 2.1<br/>
            <input type="radio" name="ansq2" value="a2" /> Respuesta 2.2<br/>
            <input type="radio" name="ansq2" value="a3" /> Respuesta 2.3<br/>
            <br/>
    <input type="radio" name="quest" value="q3" /> Pregunta 3<br/>
            <input type="radio" name="ansq3" value="a1" /> Respuesta 3.1<br/>
            <input type="radio" name="ansq3" value="a2" /> Respuesta 3.2<br/>
            <input type="radio" name="ansq3" value="a3" /> Respuesta 3.3<br/>
    <input type="submit" value="submit" />
</form>

test.php上,您将看到如下内容:

代码语言:javascript
复制
<?php 
$pregunta = $_GET['quest'];
$respuesta = $_GET['ans'.$pregunta]; //Add the question to the index to filter the answer.
    echo "Seleccionaste la pregunta: $pregunta y la respuesta: $respuesta";
?>

如果需要安全性,您可以将此表单的方法更改为POST。

现在,您可以轻松地将这些值保存到DB中。为此,我建议您了解prepared statements的工作原理。此外,mysql_*函数已弃用,请尽量避免使用它们。请改用PDOMySQLi

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17123675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档