2009-06-26 8 views
2

Je donne les résultats suivants:Pourquoi est-ce que je reçois un avis de "variable indéfinie" en PHP?

<?php 
    show_form(); 
?> 


<form id="add" method="post" action="addIssue.php"> 
    Name: 
    <?php input_text('name','str_name', $defaults , '1'); ?> 
    <input class="submit" type="submit" value="Begin download" /> 
    <input type="hidden" name="_submitCheck" value="1"/> 
</form> 


<?php 
function show_form($errors = '') 
{ 
    // If form is submitted, get the defaults from submitted parameters 
    if(empty($_POST['_submitCheck']) OR !$_POST['_submitCheck']){ 
     // set our own defaults 
     $defaults = array('str_name' => ''); 

    } else { 
     $defaults = $_POST; 
    } 
} 

// Echo text box 
function input_text($elem_id, $element_name, $values, $tab='') { 
    echo '<input id="'.$elem_id.'" name="'.$element_name.'"'; 
    echo ' tabindex="'.$tab.'" class="text" value="'; 
    echo htmlentities($values[$element_name]) . '" />'; 
} 
?> 

Pourquoi ai-je l'avis suivant?

Notice: Undefined variable: defaults

Répondre

3

Vous devez définir la variable d'être globale pour que travailler.

Au début de la méthode Show_Form, ajoutez ce code:

global $defaults; 

Ou, une meilleure solution comme l'a souligné est déjà de retourner la variable et utiliser par défaut = $ afficher_form().

+0

Arrrrrg ... vous avez raison. la portée variable. Comment je ne l'ai pas vu. –

6

$defaults est une variable locale dans le cadre de la fonction show_form. Vous voulez retourner à partir de la fonction et changer votre première ligne de code à ceci:

$defaults = show_form(); 
Questions connexes