目前我的代码看起来像这样:

# 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值!

编辑:如果您希望将可选的$ _POST值与表格中可能存在或可能不存在的字段匹配,您可以执行以下操作(我假设您是使用mysql):

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

记得要清理你的$ _POST值!

编辑:如果您希望将可选的$ _POST值与表格中可能存在或可能不存在的字段匹配,您可以执行以下操作(我假设您是使用mysql):

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

记得要清理你的$ _POST值!

编辑:如果您希望将可选的$ _POST值与表格中可能存在或可能不存在的字段匹配,您可以执行以下操作(我假设您是使用mysql):

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

记得要清理你的$ _POST值!

编辑:如果您希望将可选的$ _POST值与表格中可能存在或可能不存在的字段匹配,您可以执行以下操作(我假设您是使用mysql):

<*>POST[$field]; } }

记得要清理你的$ _POST值!

编辑:如果您希望将可选的$ _POST值与表格中可能存在或可能不存在的字段匹配,您可以执行以下操作(我假设您是使用mysql):

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

记得要清理你的$ _POST值!

编辑:如果您希望将可选的$ _POST值与表格中可能存在或可能不存在的字段匹配,您可以执行以下操作(我假设您是使用mysql):

<*>
$formfields = <*>

这将添加返回的所有字段,包括提交。如果您需要知道是否未选中复选框,则必须使用您发布的代码。如果您只关心选中的复选框,则可以使用上面的代码。

这可能不适用于使用相同名称的多个表单字段,例如单选按钮。

编辑:使用Owen的代码,它更干净,我的同一个东西是更冗长的版本。

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

这将添加返回的所有字段,包括提交。如果您需要知道是否未选中复选框,则必须使用您发布的代码。如果您只关心选中的复选框,则可以使用上面的代码。

这可能不适用于使用相同名称的多个表单字段,例如单选按钮。

编辑:使用Owen的代码,它更干净,我的同一个东西是更冗长的版本。

POST[$fieldname]; }

这将添加返回的所有字段,包括提交。如果您需要知道是否未选中复选框,则必须使用您发布的代码。如果您只关心选中的复选框,则可以使用上面的代码。

这可能不适用于使用相同名称的多个表单字段,例如单选按钮。

编辑:使用Owen的代码,它更干净,我的同一个东西是更冗长的版本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top