2015-08-18 2 views
0

Извините, я должен объяснить это лучше. Я попытался сделать это простым. То, что делает эта форма, - это раскрытие информации о лицах, и затем пользователь может выбрать, используя флажки, может ли этот человек иметь определенные вещи (например, отдых перерывов). Поэтому, когда форма загружена, галочки уже отмечены для определенных вещей ... Если это имеет смысл. Если человек уже имел право отдыхать. и я загружаю их детали в форму. Коробка для отдыха должна быть отмечена галочкой.Проверка пометки из базы данных

Идентификатор студента предназначен для отображения лица, выбранного в форме. Также статус соответствует запросу. он либо ожидает одобрения, либо одобрен, либо отклонен.

   $selected_arrangement_query = " 
      SELECT tbl_arrangement_id, arrangement, ta.status 
      FROM tbl_arrangement AS ta 
      WHERE 
      tbl_student_id = $selected 

Я буду держать этот вопрос коротким. Что происходит, так это то, что у меня есть форма с галочками. Как только пользователь нажмет на текстовое поле, он отправит данные в базу данных, а затем отобразит их в том виде, в котором этот параметр был выбран. Но галочка из текстового поля исчезает. Я хочу сделать так, чтобы после отправки данных галочка останется там. Есть около 40 ящиков, поэтому я ожидаю, что кодирование будет длинным для всех разных перестановок, но если кто-то может помочь мне начать, я могу повторить его.

Вот его начало. Первые несколько скрытых значений находятся именно там, чтобы получить того же пользователя, что и он.

 <table> 
     <form name='counter' id='counter' method="get" > 
      <tr><th colspan="8">Counter arrangements</th></tr> 
      <input type="hidden" name="selected" value="<?php echo $selected; ?>" /> 
      <input type="hidden" name="edited" value="1" /> 
      <input type="hidden" name="evidenceCount" value="<?php echo $selected_evidence_Total; ?>" /> 
      <input type="hidden" name="arrangementCount" value="<?php echo $selected_arrangement_Total; ?>" /> 

      <td valign="top" > 
       <input type="checkbox" Name='arrangements[]' value='Rest Breaks' OnChange='this.form.submit();'>Rest Breaks</option> 
      </td>   
      <td valign="top" > 
       <input type="checkbox" Name='arrangements[]' value='Small Classroom Environment' OnChange='this.form.submit();'>Small Classroom Environment</option> 
      </td> 
      <td valign="top" > 
       <input type="checkbox" Name='arrangements[]' value='Coloured Overlay' OnChange='this.form.submit();'>Coloured Overlay</option> 
      </td> 

UPDATE

Вот код выпадающих коробок для одобрена отвергнутых и т.д.

<?php 
    //declare counter 
    $rowcount = 0; 
    while ($row = $selected_arrangement_result->fetch_assoc()) { 
     printf("<tr>"); 
     printf("<td><input type='hidden' name='arrangementRowID%s' value='%s' />",$rowcount,$row['tbl_arrangement_id']); 
     printf("%s</td>",$row['arrangement']); 
     if($row['status']=='Awaiting Approval'){ 
     ?> 


     <td class="right"> 
     <select name='astatus<?php echo $rowcount; ?>' onchange='submitForm()'> 
      <option value='Awaiting Approval' selected="selected">Awaiting Approval</option> 
      <option value='Approved'>Approved</option> 
      <option value='Rejected'>Rejected</option> 
      <option value='Rejected-No Evidence'>Rejected-No Evidence</option> 
      <option value='Approved on Appeal'>Approved on Appeal</option> 
      <option value='Approved Alternative' >Approved Alternative</option> 
     </select> 
     </td> 
     <?php 
     }elseif($row['status']=='Approved'){ 
     ?> 
     <td class="right"> 
     <select name='astatus<?php echo $rowcount; ?>' onchange='submitForm()'> 
      <option value='Awaiting Approval'>Awaiting Approval</option> 
      <option value='Approved' selected="selected">Approved</option> 
      <option value='Rejected'>Rejected</option> 
      <option value='Rejected-No Evidence'>Rejected-No Evidence</option> 
      <option value='Approved on Appeal'>Approved on Appeal</option> 
      <option value='Approved Alternative' >Approved Alternative</option> 
     </select> 
     </td> 

После дальнейших исследований я нашел больше коды. Я изменил его, чтобы соответствовать моим потребностям, будет что-то вроде этой работы? Я знаю, что мне нужно будет включить все флажки, как только закончите. Мне также понадобится инструкция if для каждого, но я хочу, чтобы первая работала первой.

  $arrangement = mysql_query("SELECT tbl_arrangement_id, arrangement FROM tbl_arrangement WHERE Id=$selected"); 
      $row = mysql_fetch_row($arrangement); 
      $selected = explode(',', $row[$arrangement]); 
      $j=0; 
      for($i=0; $i<count($arrangement); $i++){ 
      if($j<count($selected) && $selected[$j] == $arrangements[$i]){ 
       echo $arrangements[$i]." <input type='checkbox' name='arrangements[]' value='". $arrangement[$i] ."' checked> "; 
       $j++; 
      } 
      else echo $arrangements[$i]." <input type='checkbox' name='arrangements[]' value='". $arrangement[$i] ."'> "; 
      } 
+0

Ну в основном, на загрузке вашей страницы, получите значения, которые были отмечены галочкой и убедитесь, что они выбраны ?! – Naruto

+0

Вам необходимо знать JavaScript, брошюра;) – DDeme

+0

По нескольким причинам вы должны подумать о том, чтобы пользователь отправил форму, а затем обработал ее. –

ответ

0

При переходе через результат запроса DB, вы можете сохранить информацию, используемую для флажков в ассоциативном массиве со значением флажка в качестве ключа.

Update:

Если я понял ваше объяснение правильно, вы можете реализовать его здесь:

<?php 
    //declare counter 
    $arrangements = []; 
    $rowcount = 0; 

    while ($row = $selected_arrangement_result->fetch_assoc()) { 
    $arr = str_replace(' ', '', $row["arrangement"]); // Removes spaces 
    $arrangements[$arr]] = true; 

    printf("<tr>"); 
    printf("<td><input type='hidden' name='arrangementRowID%s' value='%s' />",$rowcount,$row['tbl_arrangement_id']); 
    printf("%s</td>",$row['arrangement']); 
    // ... 

Тогда в флажках вы можете echoselected="selected" если значение коробки находятся в ассоциативном массиве :

<input type="checkbox" Name='arrangements[]' value='RestBreaks' <?php echo isset($arrangements["RestBreaks"]) ? 'checked="checked"' : ""; ?> OnChange='this.form.submit();'>Rest Breaks</input> 

Пространства в ассоциативных массивах могут работать не слишком так что пространство в значении input было удалено в приведенном выше примере.

+0

Итак, мне нужно сделать это для каждой коробки? Спасибо за ваш ответ – sootay

+0

Для каждого окна да, с соответствующими значениями. – harris

+0

Таким образом, он работает, когда клики на него. Извините, я должен объяснить это лучше. Я попытался сделать это простым. То, что делает эта форма, - это раскрытие информации о лицах, и затем пользователь может выбрать, используя флажки, может ли этот человек иметь определенные вещи (например, отдых перерывов). Поэтому, когда форма загружена, галочки уже отмечены для определенных вещей ... Если это имеет смысл. Если человек уже имел право отдыхать. и я загружаю их детали в форму. Коробка для отдыха должна быть отмечена галочкой. – sootay

Смежные вопросы