заполнять несколько выпадающих списков из sql [duplicate]

Если вы используете этот код на локальном сервере (т. е. ваш компьютер для целей разработки), он не отправит электронное письмо получателю. Что произойдет, он создаст файл .txt в папке с именем mailoutput.

В случае, если вы используете бесплатный сервисный сервис, например 000webhost или hostinger, эти поставщики услуг отключают функцию mail(), чтобы предотвратить непреднамеренное использование электронной почты, спам и т. д. Я предпочитаю вас чтобы связаться с ними, чтобы узнать, поддерживают ли они эту функцию.

Если вы уверены, что поставщик услуг поддерживает функцию mail (), вы можете проверить это руководство по PHP для дальнейшей справки, PHP mail ()

Чтобы проверить, поддерживает ли ваша служба хостинга функцию mail (), попробуйте запустить этот код (не забудьте изменить адрес электронной почты получателя)


Надеюсь, что это помогли.

1
задан Adrian Fischer 1 May 2016 в 00:46
поделиться

3 ответа

Сохранение в виде строки избавит вас от необходимости обрабатывать одни и те же данные, генерируя один и тот же результат несколько раз. Если это то, что вы хотите, вы можете сделать следующее.

Заменить:

echo '<select  class="assess" name="precontcons"   style="width:4em">' ;
while($row = $result->fetch_assoc()){echo '<option value='.   $row['riskNumDrop'] .'>'.$row['riskNumDrop'].'</option>';}
?> </select>

с помощью:

$drop = '<select  class="assess" name="precontcons"   style="width:4em">' ;
while($row = $result->fetch_assoc()){
  drop .= '<option value='.   $row['riskNumDrop'].'>'.$row['riskNumDrop'].'</option>';
}
$drop .= '</select>';

Затем вы можете echo $drop несколько раз, если вы хотите.


Если по какой-либо причине вы хотите использовать разные атрибуты выбора, вы можете просто сохранить список опций и распечатать выбор вокруг этого, например:

$dropOptions = "";
while($row = $result->fetch_assoc()){
  $dropOptions .= '<option value='.   $row['riskNumDrop'].'>'.$row['riskNumDrop'].'</option>';
}

Тогда просто echo '<select class="foo" name="bar">'.$dropOptions.'</select'>

1
ответ дан smerny 21 August 2018 в 09:22
поделиться
  • 1
    Это просто позволит ему вывести два идентичных выпадающих меню, но не два выпадающих списка, используя только те же данные. – Dawid Ferenczy 1 May 2016 в 01:00
  • 2
    Я не знаю, чего он хочет, и я не пытаюсь догадаться об этом, но он должен просто понять разницу. – Dawid Ferenczy 1 May 2016 в 01:05
  • 3
    Во всяком случае, я не думаю, что он хочет идентичные выпадающие списки, так как я не знаю, какова была бы цель иметь такую ​​форму (с теми же именованными / идентифицированными элементами формы). Но, как я писал, это зависит от него, я просто пытаюсь помочь ему понять это. – Dawid Ferenczy 1 May 2016 в 01:09
  • 4
    Я бы предположил, что он хочет идентичности, но просто учитывается, если нет. – smerny 1 May 2016 в 01:10
  • 5
    Мне нравится этот smemy, однако первая строка с выбранным в нем имеет уникальные имена, которые должны соответствовать столбцам в db. Поскольку он стоит сейчас каждый раз, когда я возвращаю echo $ drop, он дает мне то же самое имя выбора, которое не будет работать для меня. Я попытался переместить $ drop = в начало цикла while, но я не могу заставить его работать. – Adrian Fischer 1 May 2016 в 01:26

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

$result = $conn->query('SELECT * FROM riskNumDrop');
if (!$result) {
   echo "query failed: (" . $mysqli->errno . ") " . $mysqli->error;
   exit; // fetch_* functions cannot be called on error (sice $result is false)
}

// get all rows from the result
$rows = $result->fetch_all(MYSQLI_ASSOC);

// output first dropdown...
echo '<select name="dropdown_1">';
foreach ($rows as $row) {
    // options for the first dropdown (same as you did before)
}
echo '</select>';

// output second dropdown...
echo '<select name="dropdown_2">';
foreach ($rows as $row) {
    // options for the second dropdown
}
echo '</select>';
-1
ответ дан Dawid Ferenczy 21 August 2018 в 09:22
поделиться

Вы можете сохранить данные в массиве, а затем распечатать данные, перечислив массив.

$risks = array();

// Load values into array.
while ($row = $result->fetch_assoc()) {
    array_push($row['riskNumDrop']);
}


// Drop down #1
echo '<select>';
foreach ($risks as $risk) {
    echo '<option value='. $risk .'>'. $risk .'</option>';
}
echo '</select>';

// Drop down #2
echo '<select>';
foreach ($risks as $risk) {
    echo '<option value='. $risk .'>'. $risk .'</option>';
}
echo '</select>';
0
ответ дан joncloud 21 August 2018 в 09:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: