Hallo Leute,
ich stehe vor folgendem Problem:
Für einen Webshop möchte ich zu Beginn eines Besuchs (also empfiehlt sich das Nutzen einer Session?) ein Fenster anzeigen lassen, in welches der Nutzer seine PLZ eintippen kann, sodass ich Anfahrtskosten in die Preisanzeige integrieren kann. Nach der Eingabe möchte ich die Entfernung mittels der Google API berechnen lassen (siehe: http://mizine.de/html/mit-google-map...gen-berechnen/) und als Session-Variable speichern.
Dafür habe ich ein Modalwindow mit HTML erstellt und mit <form> tags versehen. Diese Anzeige habe ich in der index.php eingefügt, welche bei jedem Seitenaufruf ausgeführt wird. Da ich nach der Eingabe wieder die Startseite anzeigen möchte, ruft meine form action auch wieder "$_SERVER['PHP_SELF']" auf.
Nun stehe ich vor dem Problem, dass zwar der Wert abgefragt und die Entfernung korrekt berechnet wird, ein Neuladen der Seite jedoch dafür sorgt, dass die Distanzvariable zurückgesetzt wird. Im Code habe ich keinen Hinweis darauf gefunden, warum dies der Fall sein könnte. Erst war ich der Ansicht, dass die $_POST['plz'] - Variable das Problem sei und sich nach dem Seitenaufruf zurücksetzt und somit mit NULL zugewiesen wird. Daher habe ich die Variable 'count' eingebaut, um die Berechung nur beim ersten Aufruf anzuzeigen. Geholfen hat es nicht. (siehe Code)
Bei einer Session soll es doch möglich sein, eine Sessionvariable über mehrere Seitenaufrufe hinweg zu speichern. Da ich leider Anfänger in PHP bin, wäre es klasse, falls jemand hier weiterhelfen kann. Spontan fällt mir wirklich nichts ein, womit dies zusammenhängen könnte... Falls ihr der Meinung seid, dass ich den komplett falschen Weg gehe, um das o.g. Problem zu lösen, freue ich mich natürlich auch über jegliche neue Ideen!
Freue mich über jede Hilfe!
Viele Grüße,
SamDouglas112
ich stehe vor folgendem Problem:
Für einen Webshop möchte ich zu Beginn eines Besuchs (also empfiehlt sich das Nutzen einer Session?) ein Fenster anzeigen lassen, in welches der Nutzer seine PLZ eintippen kann, sodass ich Anfahrtskosten in die Preisanzeige integrieren kann. Nach der Eingabe möchte ich die Entfernung mittels der Google API berechnen lassen (siehe: http://mizine.de/html/mit-google-map...gen-berechnen/) und als Session-Variable speichern.
Dafür habe ich ein Modalwindow mit HTML erstellt und mit <form> tags versehen. Diese Anzeige habe ich in der index.php eingefügt, welche bei jedem Seitenaufruf ausgeführt wird. Da ich nach der Eingabe wieder die Startseite anzeigen möchte, ruft meine form action auch wieder "$_SERVER['PHP_SELF']" auf.
Nun stehe ich vor dem Problem, dass zwar der Wert abgefragt und die Entfernung korrekt berechnet wird, ein Neuladen der Seite jedoch dafür sorgt, dass die Distanzvariable zurückgesetzt wird. Im Code habe ich keinen Hinweis darauf gefunden, warum dies der Fall sein könnte. Erst war ich der Ansicht, dass die $_POST['plz'] - Variable das Problem sei und sich nach dem Seitenaufruf zurücksetzt und somit mit NULL zugewiesen wird. Daher habe ich die Variable 'count' eingebaut, um die Berechung nur beim ersten Aufruf anzuzeigen. Geholfen hat es nicht. (siehe Code)
Bei einer Session soll es doch möglich sein, eine Sessionvariable über mehrere Seitenaufrufe hinweg zu speichern. Da ich leider Anfänger in PHP bin, wäre es klasse, falls jemand hier weiterhelfen kann. Spontan fällt mir wirklich nichts ein, womit dies zusammenhängen könnte... Falls ihr der Meinung seid, dass ich den komplett falschen Weg gehe, um das o.g. Problem zu lösen, freue ich mich natürlich auch über jegliche neue Ideen!
Freue mich über jede Hilfe!
Viele Grüße,
SamDouglas112
PHP-Code:
session_start();
if (!isset($_SESSION['visited'])) {
?>
<div id="PLZModal" class="modal">
<div class="modal-content">
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<h1>NUR NOCH EINEN MOMENT...</h1>
<p><p>Wir machen deine Bestellung so einfach wie möglich.</br>
Bitte gib' deine Postleitzahl an, damit wir unsere Leistungen inklusive Anfahrtskosten anzeigen können.</br>
Du brauchst dir keine Gedanken um zusätzliche Kosten zu machen.</p></p>
<div align="center">
<p><label>Deine Postleitzahl:</label></br>
<input class="plzeingabe" align="center" name="plz" type="number" min="01001" max="99998" placeholder="31275"></p>
</div>
<p><button class="btn-plz-submit" id="submit">LOS GEHT'S</button></p>
</form>
</div>
</div>
<?php
$_SESSION['visited'] = true;
$_SESSION['count'] = 1;
} else {
if (isset($_SESSION['visited'])) {
if($_SESSION['count'] == 1) {
$plz = $_POST['plz'];
$_SESSION['kundenplz'] = $plz;
$_SESSION['count'] = 0;
}
}
$url="http://maps.googleapis.com/maps/api/distancematrix/xml?origins=31275DE&destinations=".$_SESSION['kundenplz']."+DE&mode=driving&language=de-DE&sensor=false";
if($xml=simplexml_load_file($url)) {
if($xml->status=='OK') {
$_SESSION['distance'] = $xml->row->element->distance->text;
}
} ?>
<script type="text/javascript" language="Javascript">
alert("Die Distanz zwischen und <?php echo $_SESSION['kundenplz']; ?> beträgt <?php echo $_SESSION['distance']; ?>.")
alert("Count ist <?php echo $_SESSION['count']; ?>");
</script>
<?php
}
?>
Kommentar