2010-02-23 5 views
2

J'ai cette forme:Aide avec Array et post

<form action="" method="post"> 
    <label for="color">Color:</label> 
    <input type="text" style="width: 195px;" name="color" id="color" value="<?php echo $item; ?>"> 
    <input value="Save" type="submit" /> 
</form> 

Et le PHP ci-dessous pour capturer le contenu:

if (!empty($_POST['color']) && preg_match('/^#[a-fA-f0-9]{6}/', $_POST['color']) != 0) { 
    $thisarray[] = $_POST['color']; 
    SetProfileField('usercss', $USER->id, implode(',',$thisarray)); 
} 

Comment puis-je ajouter un nouveau champ à la forme, puis l'ajouter à le tableau à enregistrer?

Répondre

3

Vous pouvez ajouter de nouveaux champs au formulaire si vous modifiez le code HTML. Il existe de nombreux éléments de formulaire, voir s'il y a quelque chose dont vous avez besoin ici: http://www.w3schools.com/html/html_forms.asp

Vous pouvez accéder à la valeur de chaque élément avec $_POST['key'], pour ainsi ajouter au tableau que vous devez écrire $thisarray[] = $_POST['key']. Remarque: Remplacez la clé par le nom réel de l'élément de formulaire.

Exemple entier:

HTML:

<form action="" method="post"> 
    <label for="color">Color:</label> 
    <input type="text" style="width: 195px;" name="color" id="color" value="<?php echo $item; ?>"> 
    <input name="the_new_element" /> 
    <input value="Save" type="submit" /> 
</form> 

PHP:

if (!empty($_POST['color']) && preg_match('/^#[a-fA-f0-9]{6}/', $_POST['color']) != 0) { 
    $thisarray[] = $_POST['color']; 
    $thisarray[] = $_POST['the_new_element']; 
    SetProfileField('usercss', $USER->id, implode(',',$thisarray)); 
} 

Je l'ai appelé le champ the_new_element, à changer ce que vous voulez. Bien sûr, vous devriez également nettoyer le contenu.