Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 验证后在select HTML中保存一个值_Php_Html - Fatal编程技术网

Php 验证后在select HTML中保存一个值

Php 验证后在select HTML中保存一个值,php,html,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_fet

我想在“选择”中保存选择,但它不起作用。在“提交”按钮上键入时,选择不会在“选择”中显示旧值

下面是函数的代码:

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/>';} 

提前谢谢你的帮助

虽然我做了一些小改动,但您的功能似乎正常运行。。请检查一下

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',,因此它可能无法工作

我很怀疑,你得到的下拉列表值是否正确

编辑:
应该有$\u POST['cours',而不是$\u POST[$cours],因为函数中没有定义$curs!!这将给您一个未定义变量的错误:cours

在一个函数中,我试图替换“$ligne['ID_ELEVE']”中的“$ligne”,但它也不起作用。值是正确的,您的修改不起作用too@Sab25,我已经编辑了我的答案。这次是您的解决方案,请检查并让我知道。。