Как соединить цикл foreach со строкой в ​​php - PullRequest
0 голосов
/ 06 февраля 2019

Как связать цикл foreach со строкой в ​​PHP следующим образом:

$traning [] = '<tr>
    <td style="width:30%" id="trainingCode_' . $key + 1 . '">
    <select class="select2 form-control" data-live-search= "true" name="trainingCode[]">
        <option value="0">SELECT CODE</option>'.
        foreach ($code=0 as $row) {
            //
        }
    .'</select>
    </td>
   </tr>';

Кто-нибудь может мне помочь?

Заранее спасибо

Ответы [ 5 ]

0 голосов
/ 06 февраля 2019

У вас есть несколько проблем в вашем коде:

Проблема 1: вы не можете объединить функцию как переменную, вам просто нужно разбить код и затем сохранить в переменнойиспользуйте Concat, иначе это вызовет ошибку разбора.

Проблема 2: Не знаю, почему вы используете $code=0 as $row в foreach, это даст вам ошибку Invalid argument.

Проблема 3: Это только мое предположение, согласно этому id="trainingCode_' . $key + 1 . '" вы используете этот код внутри цикла, если да, то эта часть name="trainingCode[]" также создаст проблему, когда выполучить запись, как вы узнаете правильное отношение?

Ваш пример кода:

<?php
$myString = '<tr>
    <td style="width:30%" id="trainingCode_' . $key + 1 . '">
    <select class="select2 form-control" data-live-search= "true" name="trainingCode[]">
        <option value="0">SELECT CODE</option>';

// use your foreach loop here
foreach ($code as $row) {
    $myString .= '<option value="'.$row.'">'.$row.'</option>'; // contact wit  $myString
}

$myString .= '</select></td></tr>';
$traning[] = $myString;
?>
0 голосов
/ 06 февраля 2019
$htmlToConcat = "";
 foreach ($code=0 as $row) {
        $htmlToConcat .= "";
    }


$traning [] = '<tr>
    <td style="width:30%" id="trainingCode_' . $key + 1 . '">
    <select class="select2 form-control" data-live-search= "true" name="trainingCode[]">
    <option value="0">SELECT CODE</option>'.$htmlToConcat.'</select>
</td>
</tr>';
0 голосов
/ 06 февраля 2019

Разделите код на части, понятные каждому:

$trContent = '<tr>
    <td style="width:30%" id="trainingCode_' . $key + 1 . '">
    <select class="select2 form-control" data-live-search= "true" name="trainingCode[]">
        <option value="0">SELECT CODE</option>';

// iterate over array and append to `$trContent`
foreach ($code as $row) {
    $trContent .= '<option></option>';
}

$trContent .= '</select>
    </td>
   </tr>';

$traning [] = $trContent;
0 голосов
/ 06 февраля 2019

Цикл Foreach внутри строки не лучший способ.Но строка в строке.

$options = "";
foreach ($rows as $code) {
  $options .= '<option value="'.$code '">' . $code . '</option>';
}
$traning [] = '<tr>
    <td style="width:30%" id="trainingCode_' . $key + 1 . '">
    <select class="select2 form-control" data-live-search= "true" name="trainingCode[]">
        <option value="0">SELECT CODE</option>'. $options .
    '</select>
    </td>
   </tr>';
0 голосов
/ 06 февраля 2019

Вы можете сделать что-то вроде:

$options = "";
foreach ($code=0 as $row) {
    $options .= "<option value='$code'>Code</option>";
}

$traning [] = '<tr>
<td style="width:30%" id="trainingCode_' . $key + 1 . '">
<select class="select2 form-control" data-live-search= "true" name="trainingCode[]">
    <option value="0">SELECT CODE</option>'.
    $options
.'</select>
</td>
</tr>';
...