验证后,在选择的HTML中保存一个值

时间:2014-09-24 07:33:12

标签: php html

我想在选择'中保存一个选项。但它不起作用。当您在提交按钮上输入时,选择不会在“选择”中显示旧值。

这里是函数的代码:

function afficher_cours($cxn) {
$requete="SELECT ID_COURS, SIGLE FROM COURS ORDER BY SIGLE";
$res = mysqli_query($cxn, $requete);
echo '<select name = "cours">';
while($ligne = mysqli_fetch_array($res)){ 
    if(isset($_POST[$cours]) AND ($_POST[$cours] == $ligne)) {
        $selected = 'selected="selected"';
    } else {
        $selected='';
    }
echo "<option value = $ligne[0] $selected > $ligne[1] </option>";
}
echo '</select>';

}

这里是脚本的代码:

<form method="POST" action="">
<table>
    <tr>
        <td> Classe </td>
        <td> 
            <?php afficher_classe() ?>
        </td>
        <td> Cours </td>
        <td> <?php afficher_cours($cxn) ?> </td>
        <td> Numéro du test  </td>
        <td> <?php selection_noTest(0, 5, 'noTest'); ?> </td>
        <td>
            <input type="SUBMIT" name="afficher" value="Afficher"/>
        </td>
    </tr>
</table>
if(isset($_POST['afficher'])) {
        $cours = $_POST['cours'];
        $classe = $_POST['classe'];
        $noTest = $_POST['noTest'];
        $annee = ANNEE;
        $_SESSION['cours'] = $cours;
        $_SESSION['noTest'] = $noTest;
        $requete = "SELECT NBTESTS, EXAMEN FROM COURS WHERE ID_COURS = $cours";
        $res = mysqli_query($cxn, $requete);
        echo (mysqli_error ($cxn));
        $ligne = mysqli_fetch_array($res);
        $_SESSION['nbTests'] = $ligne['NBTESTS'];
        $_SESSION['examen'] = $ligne['EXAMEN'];
        if (($noTest > $ligne['NBTESTS']) OR (($noTest == 0) AND ($ligne['EXAMEN'] == 'non'))) {
            echo 'Le numéro du test est incorrect pour ce cours. <br/>';} 

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您的功能似乎有效,但我做了一些小改动......请检查一下..

function afficher_cours($cxn) {
   $requete="SELECT ID_COURS, SIGLE FROM COURS ORDER BY SIGLE";
   $res = mysqli_query($cxn, $requete);
   echo '<select name = "cours">';
   while($ligne = mysqli_fetch_array($res)){ 
      if(isset($_POST['cours']) AND ($_POST['cours'] == $ligne[0])) { //Changed $ligne to $ligne[0] and $_POST['cours'] instead of $_POST[$cours]
        $selected = 'selected="selected"';
      } else {
        $selected='';
      }
      echo "<option value = '".$ligne[0]."' ".$selected." > ".$ligne[1]."</option>"; // modified this line too
   }
   echo '</select>';
}

您正在抓取ID_COURS, SIGLE,但您无法访问$ligne['ID_ELEVE'],因此可能无法使用。{/ p>

我怀疑,您是否会使用正确的值获得<select>下拉列表?

修改
应该有$_POST['cours']而不是$_POST[$cours],因为$curs未在功能中定义!!这会给你一个错误&#34;未定义的变量:cours&#34;