Question

Pour le moment, mon code ressemble à ceci:

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

Pour le moment, mon code ressemble à ceci:

<*>

Cela mènerait à des déclarations sans fin si ... Même avec la syntaxe ternaire, c'est toujours compliqué. Y a-t-il un meilleur moyen?

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

Pour le moment, mon code ressemble à ceci:

<*>

Cela mènerait à des déclarations sans fin si ... Même avec la syntaxe ternaire, c'est toujours compliqué. Y a-t-il un meilleur moyen?

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

Pour le moment, mon code ressemble à ceci:

<*>

Cela mènerait à des déclarations sans fin si ... Même avec la syntaxe ternaire, c'est toujours compliqué. Y a-t-il un meilleur moyen?

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

Pour le moment, mon code ressemble à ceci:

<*>

Cela mènerait à des déclarations sans fin si ... Même avec la syntaxe ternaire, c'est toujours compliqué. Y a-t-il un meilleur moyen?

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

Cela mènerait à des déclarations sans fin si ... Même avec la syntaxe ternaire, c'est toujours compliqué. Y a-t-il un meilleur moyen?

Était-ce utile?

La solution

Que diriez-vous de cela:

// 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, 

Que diriez-vous de cela:

<*>

array_merge () fusionnera les valeurs, les valeurs les plus récentes remplaçant les précédentes.

Si vous ne voulez pas faire confiance à array_merge () , vous pouvez effectuer une boucle foreach () .

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

array_merge () fusionnera les valeurs, les valeurs les plus récentes remplaçant les précédentes.

Si vous ne voulez pas faire confiance à array_merge () , vous pouvez effectuer une boucle foreach () .

Autres conseils

Vous pouvez créer un tableau de champs facultatifs:

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

Vous pouvez créer un tableau de champs facultatifs:

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

Vous pouvez créer un tableau de champs facultatifs:

<*>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 (<*>

n'oubliez pas de désinfecter vos valeurs $ _POST!

modifier : si vous souhaitez faire correspondre des valeurs facultatives $ _POST avec des champs pouvant ou non exister dans votre table, vous pouvez procéder de la manière suivante (je suppose en utilisant mysql):

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

n'oubliez pas de désinfecter vos valeurs $ _POST!

modifier : si vous souhaitez faire correspondre des valeurs facultatives $ _POST avec des champs pouvant ou non exister dans votre table, vous pouvez procéder de la manière suivante (je suppose en utilisant mysql):

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

n'oubliez pas de désinfecter vos valeurs $ _POST!

modifier : si vous souhaitez faire correspondre des valeurs facultatives $ _POST avec des champs pouvant ou non exister dans votre table, vous pouvez procéder de la manière suivante (je suppose en utilisant mysql):

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

n'oubliez pas de désinfecter vos valeurs $ _POST!

modifier : si vous souhaitez faire correspondre des valeurs facultatives $ _POST avec des champs pouvant ou non exister dans votre table, vous pouvez procéder de la manière suivante (je suppose en utilisant mysql):

<*>POST[$field]; } }

n'oubliez pas de désinfecter vos valeurs $ _POST!

modifier : si vous souhaitez faire correspondre des valeurs facultatives $ _POST avec des champs pouvant ou non exister dans votre table, vous pouvez procéder de la manière suivante (je suppose en utilisant mysql):

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

n'oubliez pas de désinfecter vos valeurs $ _POST!

modifier : si vous souhaitez faire correspondre des valeurs facultatives $ _POST avec des champs pouvant ou non exister dans votre table, vous pouvez procéder de la manière suivante (je suppose en utilisant mysql):

<*>
$formfields = <*>

Ceci ajoutera tous les champs qui sont retournés, y compris soumettre. Si vous avez besoin de savoir si une case à cocher n'a pas été cochée, vous devrez utiliser le code que vous avez posté. Si vous ne vous souciez que des cases à cocher cochées, vous pouvez utiliser le code ci-dessus.

Cela ne fonctionnerait probablement pas pour plusieurs champs de formulaire utilisant le même nom, tels que les boutons radio.

EDIT: Utilisez le code d'Owen, c'est plus propre, le mien est une version plus verbeuse de la même chose.

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

Ceci ajoutera tous les champs qui sont retournés, y compris soumettre. Si vous avez besoin de savoir si une case à cocher n'a pas été cochée, vous devrez utiliser le code que vous avez posté. Si vous ne vous souciez que des cases à cocher cochées, vous pouvez utiliser le code ci-dessus.

Cela ne fonctionnerait probablement pas pour plusieurs champs de formulaire utilisant le même nom, tels que les boutons radio.

EDIT: Utilisez le code d'Owen, c'est plus propre, le mien est une version plus verbeuse de la même chose.

POST[$fieldname]; }

Ceci ajoutera tous les champs qui sont retournés, y compris soumettre. Si vous avez besoin de savoir si une case à cocher n'a pas été cochée, vous devrez utiliser le code que vous avez posté. Si vous ne vous souciez que des cases à cocher cochées, vous pouvez utiliser le code ci-dessus.

Cela ne fonctionnerait probablement pas pour plusieurs champs de formulaire utilisant le même nom, tels que les boutons radio.

EDIT: Utilisez le code d'Owen, c'est plus propre, le mien est une version plus verbeuse de la même chose.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top