2 Stimmen

Das Übertragen eines Formularwerts auf andere Seiten entweder mit PHP oder JS.

Ich habe ein Formular auf der Startseite einer Website, das als Include verwendet wird und nach "Geben Sie Ihre Postleitzahl ein" fragt. Mit einfachen if-else-Anweisungen in der PHP-Datei zeigt es den bevorzugten Standort an (wie vom Kunden bereitgestellt).

Beim Absenden verwendet der Standortteil einfach die $_POST-Funktion und zeigt mit einigen einfachen if-else-Anweisungen Standorte an.

Das Problem, das ich habe, besteht darin, diesen Wert auf andere Seiten zu übertragen. Sobald eine Postleitzahl eingegeben und ein Ergebnis angezeigt wurde, muss dieses Ergebnis auf andere Seiten übertragen werden, aber das passiert nicht. Ich habe Schwierigkeiten, das herauszufinden.

/Ich habe einen Link hinzugefügt -- */

http://www.subigya.com/stackoverflow/zipcode

Dateien:

http://www.subigya.com/stackoverflow/zipcode/zipcode.zip

Ich merke jetzt einige verschiedene Probleme, und ich kann einfach keine Sitzungen zum Laufen bringen, ich weiß nicht warum.

0 Stimmen

Können Sie bitte etwas Code posten?

0 Stimmen

Sie können die anderen Werte auch mit $_POST übergeben...behandeln Sie sie genauso wie die Postleitzahl.

3voto

KJYe.Name Punkte 16611

POST und GET werden nur auf die Seite übertragen, die Sie anfordern. session_start() erstellt eine Sitzung oder setzt die aktuelle Sitzung basierend auf einer Sitzungskennung fort, die über eine GET- oder POST-Anforderung übergeben wird oder über ein Cookie übergeben wird.

Wenn Sie tatsächlich die Postleitzahl abgegeben haben, können Sie sie einfach auf der nächsten Seite abrufen mit $myzip = $_POST['zipcode'];

Um es mit Session zu tun, müssen Sie:

session_start();

am Anfang der Seiten und setzen Sie die Variable mit $_SESSION['zipcode'] = 'myzipcode'; oder um den Wert abzurufen $myzip = $_SESSION['zipcode'];

PHP Session

Aktualisieren Sie Ihren aktuellen Code in process.php:

0)    
    {       
        $zip = $_POST['zipcode'];
        $_SESSION['zipcode'] = $zip;
    } else if(isset($_SESSION['zipcode']))
        $zip = $_SESSION['zipcode'];
    echo 'Aktuelle Postleitzahl in der Sitzung: ' . $_SESSION['zipcode'] . PHP_EOL; 
    if ($zip=="00000"){
        echo'

                Ortsname
                Address 1
                Stadt, Texas 77025
                888.88.8888
                GM, John Quest
                Speisekarte | Catering | Privates Essen
                Abholung | Karte & Öffnungszeiten
                Meinen Standort ändern
            ';
    }else {
        unset($_SESSION['zipcode']); 
        echo '

                Unbekannte Postleitzahl
                Die von Ihnen angegebene Postleitzahl
                liegt außerhalb des Bereichs. 
                Wir bedienen hauptsächlich
                die Greater Houston Area
                im Bundesstaat Texas.
                Klicken Sie hier, um eine
                andere Postleitzahl einzugeben.
            ';
    }
?>

Hier ist nur eine einfache Änderung an Ihrem vorhandenen process.php. Ich habe eine Sitzung hinzugefügt und speichere einfach die eingegebene Postleitzahl in der Sitzungsvariable $_SESSION['zipcode'];. Jedes Mal, wenn ein Benutzer die Postleitzahl in process.php eingibt, wird angezeigt, was in der Sessionsvar Zipcode abgelegt wird. Da Sie es in einem iframe haben, um zu sehen, ob die Sitzung funktioniert, klicken Sie einfach auf den Link, den Sie ausgegeben haben, der auf sich selbst verweisen sollte. Wenn Sie GET oder POST verwendet haben, würde die Sitzungsvariable Zipcode nicht angezeigt, aber wenn Sie Session verwenden, würde sie angezeigt. Hoffentlich hilft das.

0 Stimmen

Wow! danke dir dafür. Ich werde dir einen Link schicken, sobald ich das abgeschlossen habe. das sollte helfen :)

0voto

Mit PHP gibt es mehrere Möglichkeiten, Informationen von einer Seite auf eine andere zu übertragen

1) Sitzungen (http://no2.php.net/manual/en/book.session.php)

Auf einer Seite:

$_SESSION['someKey'] = 'someValue';` 

Auf einer anderen Seite:

echo $_SESSION['someKey'];

Damit Sitzungen funktionieren, müssen Sie session_start(); oben auf beiden Seiten (und tatsächlich auf jeder Seite, auf der die Sitzung existieren soll) ausführen.

2) POST (http://www.php.net/manual/en/reserved.variables.post.php)

3) GET (http://www.php.net/manual/en/reserved.variables.get.php)

0 Stimmen

Ja, ich stimme zu. Im Moment nutze ich Post, um Informationen zu übertragen, aber ich kann sie nur auf die Seite übertragen, die in der Form action="thisfile.php" angegeben ist... aber ich brauche diesen Wert auch auf anderen Seiten. Wie würden Sie das mit Sessions machen? Zum Beispiel habe ich auf der Homepage ein einfaches Formular, in dem steht "Geben Sie Ihren Namen ein", und sobald Sie ihn eingegeben haben, soll auf der Rest der Website stehen "Hallo arex1337"... wie mache ich das mit Sessions?

0 Stimmen

Danke. ich weiß, das soll einfach sein, aber irgendwie komme ich nicht drauf. ich habe einen Link hinzugefügt bit.ly/gYQ7xs und die Dateien befinden sich unter bit.ly/h8325M ich habe gerade festgestellt, dass ich Iframes benutze und das funktioniert nicht, denn wenn ich von Seite 1 zu Seite 2 gehe, und in Seite 1 die Postleitzahl eingegeben habe, in Seite 2 steht wieder "Geben Sie Ihre Postleitzahl ein"... ich habe eine sehr einfache JavaScript-Lösung, die funktioniert, aber nur für eine Seite, und ich versuche es für die gesamte Seite zum laufen zu bringen. :(

0 Stimmen

@suBi Verwenden Sie keine Frames. Das ist so 1999. (Und schlechte Praxis.)

0voto

Kangkan Punkte 14327

Wenn Sie die Postleitzahl nur vorübergehend benötigen und sie nicht für den Benutzer gespeichert werden muss, können Sie entweder die Session verwenden, um sie für die gesamte Sitzung zu speichern.

Sie können auch GET verwenden (indem Sie die Postleitzahl in der Abfragezeichenfolge hinzufügen), wenn Sie von einer Seite zur anderen wechseln. Dies ist geeignet, wenn Sie sie für eine minimale Anzahl von Seiten mitnehmen müssen und nicht zu viele Dinge mitnehmen müssen.

POST ist eine andere Möglichkeit, dies zu tun, und in diesem Fall müssen Sie das Cross-Page-Posting verwenden.

Wenn Sie der Meinung sind, dass die Daten in den Benutzereinstellungen gespeichert werden sollten, ist es am besten, sie im Benutzerprofil zu speichern und zu verwenden.

Die Verwendung der Sitzung oder das Speichern im Benutzerprofil hat den Vorteil, dass Sie es auf jeder Seite der Website verwenden können. Sie müssen es nicht explizit mitnehmen. Aber für POST und GET müssen Sie die Daten explizit auf die andere Seite bringen. Dies erfordert möglicherweise etwas Management.

0 Stimmen

Ich glaube, ich verstehe die Logik, aber ich bekomme dieses Ding immer noch nicht zum Laufen. Irgendwelche Vorschläge? Demo: bit.ly/gYQ7xs Dateien: bit.ly/h8325M

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