PHP повторить с Laravel 5 - PullRequest
0 голосов
/ 06 июня 2018

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

Вот мой код:

<?php
$edit_data->service_day = "목,토";
$service_day = explode(',', $edit_data->service_day);
foreach($service_day as $row){
?>
<input type="checkbox" name="service_day[]" id="checkbox2_1" value="월" 
<?php   if($row == "월"){echo 'checked="checked"';}?>
>
<label for="checkbox2_1">월</label>
<input type="checkbox" name="service_day[]" id="checkbox2_2" value="화"
<?php if($row == "화"){echo 'checked="checked"';}?>
>
<label for="checkbox2_2">화</label>
<input type="checkbox" name="service_day[]" id="checkbox2_3" value="수"
<?php if($row == "수"){echo 'checked="checked"';}?>
>
<label for="checkbox2_3">수</label>
<input type="checkbox" name="service_day[]" id="checkbox2_4" value="목"
<?php if($row == "목"){echo 'checked="checked"';}?>
>
<label for="checkbox2_4">목</label>
<input type="checkbox" name="service_day[]" id="checkbox2_5" value="금"
<?php if($row == "금"){echo 'checked="checked"';}?>
>
<label for="checkbox2_5">금</label>
<input type="checkbox" name="service_day[]" id="checkbox2_6" value="토"
<?php if($row == "토"){echo 'checked="checked"';}?>
>
<label for="checkbox2_6">토</label>
<input type="checkbox" name="service_day[]" id="checkbox2_7" value="일"
<?php if($row == "일"){echo 'checked="checked"';}?>
>
<label for="checkbox2_7">일</label>
</td>
<?php } ?>

1 Ответ

0 голосов
/ 06 июня 2018

Вы explode - обслуживаете сервисы, что делает его массивом.

Foreach выполняет итерацию по массиву (в вашем примере он состоит из двух элементов), поэтому код в теле этого foreach будет повторяться дважды.Если у вас есть 3 элемента, это будет повторяться три раза.И т. Д.

Один из способов добиться того, что вам нужно, - использовать in_array, чтобы проверить, находится ли служба в имеющемся вами массиве.Если он находится в массиве, отметьте флажок как checked.

<?php
$edit_data->service_day = "목,토";
$service_day = explode(',', $edit_data->service_day);
?>
<input type="checkbox" name="service_day[]" id="checkbox2_1" value="월" 
<?php   if(in_array("월", $service_day)){echo 'checked="checked"';}?>
>
<label for="checkbox2_1">월</label>
<input type="checkbox" name="service_day[]" id="checkbox2_2" value="화"
<?php if(in_array("화", $service_day)){echo 'checked="checked"';}?>
>
<label for="checkbox2_2">화</label>
<input type="checkbox" name="service_day[]" id="checkbox2_3" value="수"
<?php if(in_array("수", $service_day)){echo 'checked="checked"';}?>
>
<label for="checkbox2_3">수</label>
<input type="checkbox" name="service_day[]" id="checkbox2_4" value="목"
<?php if(in_array("목", $service_day)){echo 'checked="checked"';}?>
>
<label for="checkbox2_4">목</label>
<input type="checkbox" name="service_day[]" id="checkbox2_5" value="금"
<?php if(in_array("금", $service_day)){echo 'checked="checked"';}?>
>
<label for="checkbox2_5">금</label>
<input type="checkbox" name="service_day[]" id="checkbox2_6" value="토"
<?php if(in_array("토", $service_day)){echo 'checked="checked"';}?>
>
<label for="checkbox2_6">토</label>
<input type="checkbox" name="service_day[]" id="checkbox2_7" value="일"
<?php if(in_array("일", $service_day)){echo 'checked="checked"';}?>
>
<label for="checkbox2_7">일</label>
</td>

Другой подход:

<?php 

//All of the available service days
$available_service_days = ['월', '화', '수', '목', '금', '토', '일'];

//Checked service days
$edit_data->service_day = "목,토";
$service_day = explode(',', $edit_data->service_day);


//Loop through the available service days to generate checkbox
foreach($available_service_days as $key => $available_service_day) {
//Print the checkbox and check it if necessary
?>

    <input type="checkbox" name="service_day[]" id="checkbox2_<?php echo $key; ?>" value="<?php echo $available_service_day; ?>" 
    <?php if(in_array($available_service_day, $service_day)){echo 'checked="checked"';}?>
    >
    <label for="checkbox2_7"><?php echo $available_service_day; ?></label>
<?php } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...