Montag, Januar 27, 2020

Seite neu laden, halten Sitzungen

Ich versuche zu entwickeln, eine Funktion, wo ein Benutzer können klicken Sie auf „Vorherige Woche“/“Nächste Woche“ und das löst einige $_SESSION Variablen, um die Werte zu ändern (Termine).

Habe ich diesen code auf absence.php (ich weiß, das PRG pattern ist nicht implementiert. Ich habe keine Idee, wie dies zu tun, aber immer noch halten-Funktionalität).

<?php
if (isset($_POST['decrease_date'])) {
    $monday_value = ($_SESSION['sess_mon'] = strftime("%Y-%m-%d", strtotime("{$_SESSION['sess_mon']} -1 day")) );
}
if (isset($_POST['increase_date'])) {
    $monday_value = ($_SESSION['sess_mon'] = strftime("%Y-%m-%d", strtotime("{$_SESSION['sess_mon']} +1 day")) );
}
else {
    $monday_value = ($_SESSION['sess_mon'] = date('Y-m-d', strtotime('Monday this week')) );
}
?>

 <form action='absence.php' method='post'>
  <input type="hidden" name="decrease_date"/>
  <input type='submit' value='Previous'>
 </form>

<form action='absence.php' method='post'>
 <input type="hidden" name="increase_date"/>
<input type='submit' value='Next'>
</form>

Nun möchte ich die Seite neu laden (mit jQuery location.reload()-Funktion), aber immer noch halten die $_SESSIONs was aktiv war, in dem moment, bevor die Seite aktualisiert wurde. Derzeit wird „zurückgesetzt“, da es keine $_POST.

Idealerweise würde ich gerne die <form action'#'> zu einer anderen Seite. Jedoch, wenn Sie zuerst absence.php die Daten zurückgesetzt werden sollen.

Wie kann ich dies tun?

InformationsquelleAutor David | 2012-08-03

2 Kommentare

  1. 1

    ändern

    session_start();

    in:

    if (!isset($_SESSION)){
      session_start();
    }
    • Ich bin mal gespannt. Wie würde das mir helfen?
    • Sie nicht eine neue Sitzung erstellen jedes mal, wenn Sie post form
    • Oh, ich vergaß, dass ich nicht brauchen, die session_start() an, da es vererbte sich von einer anderen Seite. absence.php ist im Lieferumfang enthalten innerhalb von index.php
    • sorry, habe ich nicht voll bekommen, deine Frage auch eigentlich meine Antwort ist nur ein Kommentar… 😀
  2. 0

    Statt zurückladen, können Sie nicht nur senden Sie das Formular durch jquery $("form#frmDate").submit(); vergessen Sie nicht, geben Sie ID, um Ihre form frmDate.

    Ist es das, was du suchst?

    • Ich glaube nicht, dass es ist, was ich Suche. Die Variablen werden innerhalb einer MySQL-Abfrage für die Auflistung der Zeilen, mit Farben ändern, basierend auf Werten, wie ein Daten-grid. Und wenn ein user hat Bearbeiten Sie eine Zeile und klicken Sie auf „Speichern“ möchte ich die Daten neu geladen werden.

Kostenlose Online-Tests