2016-04-07 3 views
0

Mir wurde gesagt, dass ich Daten und den Benutzer zu einer Seite senden kann, ohne ein Formular zu verwenden. Grundsätzlich habe ich eine Seite mit Produkten (die Seite heißt Produkte) und dann eine Bearbeitungsschaltfläche, die, wenn ich darauf klicke, mich auf eine andere Seite mit dem Namen "Bearbeitungs-Produkt" bringt, die mir mehr Informationen (Eingaben) anzeigt. , damit ich Informationen über diesen Datensatz bearbeiten/hinzufügen kann.Wie man Daten und einen Benutzer zu einer Seite mit einem Link sendet

Ich habe dies mit dem Formular getan und den Benutzer dort mit dem Action-Attribut des Formulars senden. Ich möchte AJAX mit bestimmten Elementen der aktuellen Form auf der Produktseite verwenden, aber ich möchte den Formularcode vollständig löschen. (nur die Form-Tags).

Hier ist mein Code:

$stmt = $dbc->query("SELECT `id`,`first`,`last`,`product` FROM users"); 
    $stmt->setFetchMode(PDO::FETCH_ASSOC); 

    while($row = $stmt->fetch()) { 
    ?> 
    <form method="POST" action="edit-product"> 
     <tr> 
      <td><?php echo $row['id'];?>"</td> 
      <td><?php echo $row['first'];?></td> 
      <td><?php echo $row['last'];?></td> 
      <td><?php echo $row['product'];?></td> 
      <input name="id" type="hidden" value="<?php echo $row['id'];?>" readonly> 
      <input name="first" type="hidden" value="<?php echo $row['first'];?>"> 
      <input name="last" type="hidden" value="<?php echo $row['last'];?>"> 
      <input name="product" type="hidden" value="<?php echo $row['product'];?>"> 
      <td><input name="save" type="submit" value="Save"></td> 
      <td><div class="delete-class" name="delete" id="<?php echo $row['id']; ?>">Delete</div></td> 
      <td><input name="edit" type="submit" value="Edit"></td> 
     </tr> 
    </form> 
    <?php } ?> 
    </tbody> 
</table> 

Derzeit in meinem edit-Produktseite, erhalte ich die Daten wie folgt aus:

$id = $_POST['id']; 
$first = $_POST['first']; 
$last = $_POST['last']; 
$product = $_POST['product']; 

Wie kann ich die Benutzer und Produktdaten an die schicken Bearbeiten Sie die Produktseite, indem Sie diesen oder einen anderen Code ändern?

Antwort

0

Sie können HTML localStorage verwenden, um Werte des Formulars zu speichern und sie lokal abzurufen, sobald der Benutzer zur nächsten Seite/Site gelangt. Keine serverseitige Datenübertragung erforderlich.

Beispiel einer Implementierung für localStorage.

// Save data to the current local store 
localStorage.setItem("username", "John"); 

// Access some stored data 
alert("username = " + localStorage.getItem("username")); 

Sie können auch sessionstorage in der gleichen Art und Weise nutzen - aber die Daten werden nur dann gespeichert, bis Sie Ihren Browser schließen oder nav von der Seite entfernt.

+0

Ich will nicht, dass es von diesem Zeitpunkt an eine Form ist. Ich werde eine anständige Menge an AJAX für verschiedene Funktionen verwenden, die nicht sehr gut mit Formularen funktionieren. – Becky

+0

Es muss kein Formular sein. Sie können Daten von jeder Quelle auf Ihrer Seite in localStorage speichern. Sie können AJAX-Abfragen auch so oft wie nötig erstellen. Wenn Sie jedoch AJAX nicht auf Seitenwechsel ändern möchten, ist localStorage eine großartige Alternative (und schneller) zur Verarbeitung temporärer Datenspeicher auf der Clientseite. – Korgrue

Verwandte Themen