Как проверить наличие дополнительных полей в $ _POST

StackOverflow https://stackoverflow.com/questions/222520

  •  03-07-2019
  •  | 
  •  

Вопрос

На данный момент мой код выглядит следующим образом:

# Assign values for saving to the db
$data = array(
    'table_of_contents' => 

На данный момент мой код выглядит следующим образом:

<*>

Это привело бы к бесконечным операторам if, хотя ... Даже с троичным синтаксисом это все еще грязно. Есть ли лучший способ?

POST['table_of_contents'], 'length' =>

На данный момент мой код выглядит следующим образом:

<*>

Это привело бы к бесконечным операторам if, хотя ... Даже с троичным синтаксисом это все еще грязно. Есть ли лучший способ?

POST['length'] ); # Check for fields that may not be set if ( isset(

На данный момент мой код выглядит следующим образом:

<*>

Это привело бы к бесконечным операторам if, хотя ... Даже с троичным синтаксисом это все еще грязно. Есть ли лучший способ?

POST['lossless_copy']) ) { $data = array( 'lossless_copy' =>

На данный момент мой код выглядит следующим образом:

<*>

Это привело бы к бесконечным операторам if, хотя ... Даже с троичным синтаксисом это все еще грязно. Есть ли лучший способ?

POST['lossless_copy'] ); } // etc.

Это привело бы к бесконечным операторам if, хотя ... Даже с троичным синтаксисом это все еще грязно. Есть ли лучший способ?

Это было полезно?

Решение

Как насчет этого?

// this is an array of default values for the fields that could be in the POST
$defaultValues = array(
    'table_of_contents' => '',
    'length' => 25,
    'lossless_copy' => false,
);
$data = array_merge($defaultValues, 

Как насчет этого?

<*>

array_merge () объединит значения, а более поздние значения переопределяют предыдущие.

Если вы не хотите доверять array_merge () , вы можете выполнить цикл foreach () .

POST); // $data is now the post with all the keys set

array_merge () объединит значения, а более поздние значения переопределяют предыдущие.

Если вы не хотите доверять array_merge () , вы можете выполнить цикл foreach () .

Другие советы

Вы можете создать массив необязательных полей:

$optional = array('lossless_copy', 'bossless_floppy', 'foo');
foreach ($optional as $field) {
    if (isset(

Вы можете создать массив необязательных полей:

<*>POST[$field])) { $data[$field] =

Вы можете создать массив необязательных полей:

<*>POST[$field]; } }
foreach (
$fields = array();
$table  = 'Current_Table';

// we are not using mysql_list_fields() as it is deprecated
$query  = "SHOW COLUMNS from {$table}";
$result = mysql_query($query);
while ($get = mysql_fetch_object($result) ) {
  $fields[] = $get->Field;
}

foreach($fields as $field) {
  if (isset(
foreach (<*>

не забудьте очистить ваши значения $ _POST!

edit : если вы хотите сопоставить необязательные значения $ _POST с полями, которые могут или не могут существовать в вашей таблице, вы можете сделать что-то вроде этого (я предполагаю, что вы используя mysql):

<*>POST as $key => $value) { $data[$key] = $value; }

не забудьте очистить ваши значения $ _POST!

edit : если вы хотите сопоставить необязательные значения $ _POST с полями, которые могут или не могут существовать в вашей таблице, вы можете сделать что-то вроде этого (я предполагаю, что вы используя mysql):

<*>POST[$field]) ) { $data[$field] =
foreach (<*>

не забудьте очистить ваши значения $ _POST!

edit : если вы хотите сопоставить необязательные значения $ _POST с полями, которые могут или не могут существовать в вашей таблице, вы можете сделать что-то вроде этого (я предполагаю, что вы используя mysql):

<*>POST as $key => $value) { $data[$key] = $value; }

не забудьте очистить ваши значения $ _POST!

edit : если вы хотите сопоставить необязательные значения $ _POST с полями, которые могут или не могут существовать в вашей таблице, вы можете сделать что-то вроде этого (я предполагаю, что вы используя mysql):

<*>POST[$field]; } }

не забудьте очистить ваши значения $ _POST!

edit : если вы хотите сопоставить необязательные значения $ _POST с полями, которые могут или не могут существовать в вашей таблице, вы можете сделать что-то вроде этого (я предполагаю, что вы используя mysql):

<*>POST as $key => $value) { $data[$key] = $value; }

не забудьте очистить ваши значения $ _POST!

edit : если вы хотите сопоставить необязательные значения $ _POST с полями, которые могут или не могут существовать в вашей таблице, вы можете сделать что-то вроде этого (я предполагаю, что вы используя mysql):

<*>
$formfields = <*>

Это добавит все возвращаемые поля, включая submit. Если вам нужно знать, если флажок не установлен, вам придется использовать код, который вы опубликовали. Если вы заботитесь только о флажках, которые отмечены, вы можете использовать приведенный выше код.

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

РЕДАКТИРОВАТЬ: используйте код Оуэна, он чище, мой - более подробная версия того же.

POST; $data = array(); foreach(array_keys($formfields) as $fieldname){ $data[$fieldname] = <*>

Это добавит все возвращаемые поля, включая submit. Если вам нужно знать, если флажок не установлен, вам придется использовать код, который вы опубликовали. Если вы заботитесь только о флажках, которые отмечены, вы можете использовать приведенный выше код.

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

РЕДАКТИРОВАТЬ: используйте код Оуэна, он чище, мой - более подробная версия того же.

POST[$fieldname]; }

Это добавит все возвращаемые поля, включая submit. Если вам нужно знать, если флажок не установлен, вам придется использовать код, который вы опубликовали. Если вы заботитесь только о флажках, которые отмечены, вы можете использовать приведенный выше код.

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

РЕДАКТИРОВАТЬ: используйте код Оуэна, он чище, мой - более подробная версия того же.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top