代码之家  ›  专栏  ›  技术社区  ›  beginnerprogrammer

php用laravel 5重复

  •  0
  • beginnerprogrammer  · 技术社区  · 8 年前

    我已经可以从数据库中获取数据,我需要使用复选框来显示它。我不知道出了什么问题,我需要它只重复一次,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 回复  |  直到 8 年前
        1
  •  1
  •   Ivanka Todorova rmarif    8 年前

    你是 explode -使服务成为数组。

    Foreach 正在遍历数组(在您的示例中它有两个元素),因此foreach主体中的代码将重复两次。如果你有三个元素,它将被重复三次。等等。

    实现你所追求的目标的一种方法是 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 } ?>