перебрать массив $ _POST, используя значения mysql - PullRequest
0 голосов
/ 24 февраля 2012

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

{foreach from = $folderslist item=List}
    <input type="text" name="{$List.widgetid}" id="wcolor" value="{$List.color}" maxlength="6" onChange="display_screenplay_color('fcolor_id',this.value)" style="width:48px;">    
    <span style="color:#{$List.color}">{$List.items} </span>
{/foreach}

столбец widgetid.поэтому для каждого виджета нам нужно имя поля и текстовое поле рядом с ним со знаком id="$idfromdb". Таким образом, после того, как вы нажмете SUBMIT, он отправит все данные.Я хочу цикл, который будет обновлять БД со значениями текстового поля.Мне было интересно, могу ли я перебрать $_POST, но использовать регулярные выражения, поскольку все идентификаторы виджетов начинаются с "w", ИЛИ я могу получить отправленное значение $_POST каждого текстового поля, их идентификаторы начинаются с "w".или любые другие идеи / предложения?

1 Ответ

1 голос
/ 24 февраля 2012

вы можете использовать name[] или name[id] в качестве имени входа, и PHP преобразует его в связанный массив для вас.

<form action="test.php" method="post">
    <input type="text" name="widget[5]" id="widget_5" value="5" />
    <input type="text" name="widget[6]" id="widget_6" value="6" />
    <input type="text" name="widget[9]" id="widget_9" value="9" />
    <input type="submit" />
</form>

$ _ POST будет включать эту информацию

array
  'widget' => 
    array
      5 => string '5' (length=1)
      6 => string '6' (length=1)
      9 => string '9' (length=1)

теперь вы можете сделать это с помощью

foreach ($_POST["widget"] as $widgetId => $value)
    [...]
...