将数组自动发布到另一个页面

时间:2017-04-08 20:33:08

标签: php arrays send

我的网站上有一个搜索栏,用于调用在数据库中进行查询的脚本。

查询完成后,我想将结果返回到第一页,但是:

我不想经历一个会话,因为用户可能打开了几个标签,我不想通过序列化在url中传递结果,因为搜索栏中的结果真的不太好。< / p>

您是否知道如何在不使用ajax的情况下将数组从一个页面传递到另一个页面?

我发送一个值: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>

我的研究脚本是:

<?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);
    }
}

我需要在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>
<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>

1 个答案:

答案 0 :(得分:-1)

查询完成后,结果已存储在变量中。所以你可以在页面上显示。

如果要将其传输到另一个页面,可以将序列化数组存储到HTML隐藏表单元素中。 这要求用户提交表单以将数组传递到下一页。