PHP JavaScript - несколько вариантов флажков в одной таблице phpmyadmin - PullRequest
0 голосов
/ 29 августа 2018

У меня есть несколько флажков в php для одной таблицы в phpmyadmin, и я пытаюсь выяснить, как поместить несколько значений в одну таблицу phpmyadmin (например, выбор Womers, Website и Automail соединит их вместе в одной таблице CRP_SYS_AFFECTED с запятыми "Womers, Website, Automail").

это используемый интерфейс флажка.

<tr>
		<td><b>System Affected: </b></td>
		<td align='left'><input type='checkbox' name='aff' value='Womers' <?php if($input[69] == "Womers"){echo "checked";} ?>> Womers</td>
		<td align='left'><input type='checkbox' name='aff' value='LOS' <?php if($input[69] == "LOS"){echo "checked";} ?>> LOS</td>
		<td align='left'><input type='checkbox' name='aff' value='Host To Host' <?php if($input[69] == "Host To Host"){echo "checked";} ?>> Host To Host</td>
		<td align='left'><input type='checkbox' name='aff' value='Website' <?php if($input[69] == "Website"){echo "checked";} ?>> Website</td>
	</tr>
	<tr>
		<td></td>
		<td align='left'><input type='checkbox' name='aff' value='SSWB' <?php if($input[69] == "SSWB"){echo "checked";} ?>> SSWB</td>
		<td align='left'><input type='checkbox' name='aff' value='Orafin' <?php if($input[69] == "Orafin"){echo "checked";} ?>> Orafin</td>
		<td align='left'><input type='checkbox' name='aff' value='Automail' <?php if($input[69] == "Automail"){echo "checked";} ?>> Automail</td>
		<td align='left'><input type='checkbox' name='aff' value='SID' <?php if($input[69] == "SID"){echo "checked";} ?>> SID</td>
	</tr>
	<tr>
		<td></td>
		<td align='left'><input type='checkbox' name='aff' value='SSWBS' <?php if($input[69] == "SSWBS"){echo "checked";} ?>> SSWBS</td>
		<td align='left'><input type='checkbox' name='aff' value='PSAK' <?php if($input[69] == "PSAK"){echo "checked";} ?>> PSAK</td>
		<td align='left'><input type='checkbox' name='aff' value='Mirrorsys' <?php if($input[69] == "Mirrorsys"){echo "checked";} ?>> Mirrorsys</td>
		<td align='left'>
		<input type='checkbox' name='aff' value='Otheraff'
				<?php $mod_array = array("Womers", "LOS", "Host To Host", "Website", "Orafin", "Automail", "SID", "SSWB","SSWBS","PSAK","Mirrorsys");
				if(! in_array($input[69], $mod_array) && $input[69] != NULL){ echo "checked"; } ?>>
			<input type='text' name='other_aff' onkeyup='otherModCheck()' value='<?php if( ! in_array($input[69], $mod_array)){ echo $input[69]; } ?>'>
		</td>
	</tr>

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

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

позвольте мне расширить мой комментарий, чтобы вы могли получить массив всех отмеченных флажков, которые вы можете сделать примерно так:

<form action="#" method="post">
  <tr>
    <td><b>System Affected: </b></td>
    <td align='left'><input type='checkbox' name='aff[]' value='Womers' <?php if($input[69] == "Womers"){echo "checked";} ?>> Womers</td>
    <td align='left'><input type='checkbox' name='aff[]' value='LOS' <?php if($input[69] == "LOS"){echo "checked";} ?>> LOS</td>
    <td align='left'><input type='checkbox' name='aff[]' value='Host To Host' <?php if($input[69] == "Host To Host"){echo "checked";} ?>> Host To Host</td>
    <td align='left'><input type='checkbox' name='aff[]' value='Website' <?php if($input[69] == "Website"){echo "checked";} ?>> Website</td>
</tr>
<input type="submit" name="submit" value="Submit"/>
</form>


<?php
  if(isset($_POST['submit'])){ //to run PHP script on submit
   if(!empty($_POST['aff'])){
    // Loop to store and display values of individual checked checkbox.
    foreach($_POST['aff'] as $selected){
     echo $selected."</br>";
    }
   }
  }
?>

еще одна вещь, которую я забыл добавить, это то, что, если я прав, вы вводите значение $input[69], которое должно содержать массив, в котором хранятся все эти значения, в этом случае. я вижу, что вы делаете с <?php if($input[69] == "Womers"){echo "checked";} ?>, что вы проверяете по одному значению в каждой строке, вы можете попробовать что-то вроде

in_array("Womers", $input[69]) 

это возвращает истину или ложь. опять же, это допустимо, только если ваш $input[69] является массивом.

0 голосов
/ 29 августа 2018

Похоже, все они имеют одинаковые имена.

https://www.w3schools.com/tags/att_input_type_checkbox.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...