Как проверить наличие дополнительных полей в $ _POST
Вопрос
На данный момент мой код выглядит следующим образом:
# 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. Если вам нужно знать, если флажок не установлен, вам придется использовать код, который вы опубликовали. Если вы заботитесь только о флажках, которые отмечены, вы можете использовать приведенный выше код. Р>
Вероятно, это не сработает для нескольких полей формы, использующих одно и то же имя, например переключатели.
РЕДАКТИРОВАТЬ: используйте код Оуэна, он чище, мой - более подробная версия того же.