2 Stimmen

Warum erhalte ich die Meldung "Undefinierte Variable" in PHP?

Ich habe also Folgendes:

<?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 erhalte ich die folgende Mitteilung?

Notice: Undefined variable: defaults

6voto

Jim Puls Punkte 75380

$defaults ist eine lokale Variable innerhalb des Bereichs der show_form Funktion. Sie möchten es aus der Funktion zurückgeben und Ihre erste Codezeile in diese Zeile ändern:

$defaults = show_form();

3voto

Graham Edgecombe Punkte 3643

Sie müssen die Variable als global festlegen, damit das funktioniert.

Fügen Sie am Anfang der Methode show_form den folgenden Code ein:

global $defaults;

Oder eine bessere Lösung, wie bereits erwähnt, ist die Rückgabe der Variablen und die Verwendung von $defaults = show_form().

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X