2017-04-08 7 views
-1

Ich habe eine Suchleiste auf meiner Website, die ein Skript aufruft, das Abfragen in der Datenbank durchführt. Ich möchte zurückkehren um das Ergebnis der ersten SeiteArray automatisch auf eine Seite an anderer Stelle verschicken

Sobald die Abfragen aber fertig sind:

Ich will nicht gehen durch eine Sitzung, da der Benutzer öffnen mehrere Registerkarten haben könnte, und ich will nicht, um das Ergebnis in der URL mit einer Serialisierung zu übergeben, weil das Ergebnis in der Suchleiste wirklich nicht schön ist.

Hätten Sie eine Idee, wie Sie ein Array von einer Seite zur nächsten weitergeben können, ohne Ajax zu verwenden?

Ich sende einen Wert mit: search.php

<form action="../core/data_search.php" method="post" id="research_form"> 
    <input type="text" id="search" name="search" /> 
    <input type="submit" value="Rechercher" id="research" /> 
</form> 

Meine Forschung Skript ist:

<?php 
session_start(); 
require_once("conf.php"); 

$id = $_SESSION["id"]; 
if ($_POST && !empty($_POST)) { 
    $data = $_POST['search']; 
    //Recherche d'une adresse mail 
    if (preg_match (" /^[^\W][a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\.[a-zA-Z]{2,4}$/ " , $data)){ 
     $column = "WHERE `email` = '$data' AND `add_by_user` = '$id'"; 
    //Recherche d'un code postal complet (ou la recherche strictement égal à la colonne)  
    }elseif (preg_match(" /^(?:(?:(?:0[1-9]|[1-8]\d|9[0-5])(?:\d{3})?)|97[1-8]|98[4-9]|2[abAB])$/ ", $data)) { 
     $column = "WHERE `zip_code` LIKE '$data%' AND `add_by_user` = '$id'"; 
    }elseif (preg_match(" /^([a-zA-Z]+[ '-]?[a-zA-Z]+){1,30}$/ ", $data)) { 
     $column = "WHERE `first_name` = '$data' OR `last_name` = '$data' AND `add_by_user` = '$id'"; 
    //Recherche par date de fin de formation 
    }elseif (preg_match(" /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/ ", $data)) { 
     $column = "WHERE `end_formation_date` = '$data' AND `add_by_user` = '$id' "; 
    }else{ 
     header("Location : ../search.php?return=error"); 
     exit(); 
    } 

    $data = $bdd->query("SELECT * FROM customers $column "); 
    $result = $data->fetchAll(PDO::FETCH_ASSOC); 

    // Here i replace the end of script for use Ajax 
    if($result){ 
     echo json_encode($result); 
    } 
} 

ich in search.php diese Art von Ergebnis haben, müssen

<form action="../core/data_search.php" method="post" id="research_form"> 
    <input type="text" id="search" name="search" /> 
    <input type="submit" value="Rechercher" id="research" /> 
</form> 
<section> 
    <p>firstname : <?=$firstname?> <!--received to my queries script--></p> 
    <p>lastname : <?=$lastname?> <!--received to my queries script--></p> 
    <p>age  : <?=$age?> <!--received to my queries script--></p> 
</section> 
+0

Verwirrende Erklärung, könnten Sie uns einige Codebeispiele bereitstellen? –

+1

Fügen Sie einfach das Formular am Ende der PHP-Datei? Und prüfen Sie, ob Sie Postdaten erhalten haben und die Abfrage fortgesetzt wurde, dann zeigen Sie Vorname, Nachname und Alter an. Wenn Sie keine Postdaten erhalten haben, zeigen Sie einfach das Formular an. –

+1

Ein Beispiel dafür, wie ich Post-Daten behandeln und HTML-Ausgabe bei Bedarf anzeigen: https://pastebin.com/uPGXEfMz –

Antwort

-1

Wenn die Ergebnisse der Abfragen abgeschlossen sind, sind sie bereits in einer Variablen gespeichert. So können Sie auf der Seite anzeigen.

Wenn Sie es auf eine andere Seite übertragen möchten, können Sie das serialisierte Array in HTML verstecktes Formularelement speichern. Dazu muss der Benutzer das Formular senden, um das Array an die nächste Seite zu übergeben.

+0

Aber ich möchte nicht, dass jemand auf dieser Seite bleiben, es ist nur ein Abfragen Skript ;) – Buck

Verwandte Themen