Сохранить флажок флажок после отправки-не работает - PullRequest
0 голосов
/ 26 апреля 2018

Я реферировал и пробовал множество решений, предусмотренных в таких ветках вопросов, прежде чем задавать мой вопрос, поскольку ни одно из них не работает для меня должным образом. У меня есть одна таблица студентов mysql, в которой хранятся имена, оценки и оценки. Я извлекаю эти данные из базы данных, используя цикл while.

$query="select * from student";
$rs=  mysql_query($query) or die(mysql_error());


<?php if(mysql_num_rows($rs)){ ?>
  <table border="5" cellspacing="5" width="50%" align="center">
      <tr>
          <th>No</th>
          <th>Name</th>
          <th>Marks</th>
          <th>Operation</th>
          <th>  <input type ="submit" name="delete" value="Delete"></th>
      </tr>
      <?php


 while($row=mysql_fetch_array($rs))
          {


?>
      <tr>
           <th><?php echo $row['rollno']; ?></th>
          <th><?php echo $row['name']; ?></th>
          <th><?php echo $row['marks']; ?></th>
                      <th><a href="AllOperation.php?&no=<?php echo $row['rollno']; ?>&name=<?php echo $row['name']; ?>&marks=<?php echo $row['marks']; ?>">View</a></th>
          <th><input type="checkbox" name="check[]" value="<?php echo $row['marks']; ?>" <?php if(isset($_POST['check']))  if (in_array($row['marks'], $_POST['check'])) echo "checked='checked'"; ?> /></th>
      </tr>
      <tr>
      <?php  } ?>
<input type ="submit" name="total" value="total">

И я получаю общее количество оценок всех студентов

if(isset($_POST['total']))


{                        $t=0;
                     foreach($_REQUEST['check'] as $val)
                     {                             
                         $t=$t+$val;                             
                     }
               echo "    total : ".$t;


 }

Теперь проблема в том, что когда я в первый раз запускаю программу, она отображает информацию о 5 студентах, а затем я выбрал первые два флажка и нажимаю кнопку «итого» для генерации итога. Таким образом, он отображает итоговое значение должным образом и оставьте флажки рядом с этим. Но когда я установил третий флажок и нажал кнопку «итого», чем , он показывает сумму всех трех отмеченных флажков, но отображается 4-й или последний флажок, даже если я его не проверял. Так почему это происходит.

1 Ответ

0 голосов
/ 26 апреля 2018

Проблема, которую я вижу: if (in_array($row['marks'], $_POST['check']) echo "checked='checked'

Когда вы отправляете, он всегда проверяет флажки с одинаковыми отметками

Я думаю, вы должны использовать другой уникальный столбец, ex $ row ['rollno']; вместо $ row ['marks']

...