2009-06-26 6 views
2

So habe ich die folgenden:Warum erhalte ich in PHP eine "Undefinierte Variable"?

<?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]) . '" />'; 
} 
?> 

Warum bin ich die folgende Mitteilung erhalten?

Notice: Undefined variable: defaults

Antwort

3

Sie müssen die Variable setzen global sein dafür zu arbeiten.

Zu Beginn der zeige_formular Methode, fügen Sie diesen Code:

global $defaults; 

Oder eine bessere Lösung wie bereits erwähnt wird die Variable zurück und) ($ defaults = zeige_formular verwenden.

+0

Arrrrrg ... Sie haben Recht. der variable Umfang. Wie ich es nicht gesehen habe. –

6

$defaults ist eine lokale Variable innerhalb des Schutzbereichs der show_form Funktion. Sie wollen es von der Funktion zurückzukehren und die erste Zeile Code dies zu ändern:

$defaults = show_form(); 
Verwandte Themen