Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Analisis ringkas tentang cara melaksanakan fungsi mengklik butang untuk menyimpan syarat pertanyaan dalam PHP

Analisis ringkas tentang cara melaksanakan fungsi mengklik butang untuk menyimpan syarat pertanyaan dalam PHP

PHPz
PHPzasal
2023-04-04 10:43:04677semak imbas

Dalam halaman carian tapak web, kita selalunya perlu melaksanakan fungsi mengklik butang untuk menyimpan syarat pertanyaan. Sebagai bahasa pengaturcaraan, PHP boleh melaksanakan fungsi ini dengan mudah. Dalam artikel ini, kami akan memperkenalkan cara melaksanakan fungsi mengklik butang untuk menyimpan syarat pertanyaan dalam PHP.

1. Penerangan Masalah

Dalam halaman carian banyak tapak web, kita boleh melihat beberapa butang, seperti butang "Simpan Syarat Pertanyaan". Fungsi butang ini adalah untuk menyimpan keadaan carian semasa supaya apabila mencari semula pada masa hadapan, syarat ini boleh dimuatkan terus tanpa memasukkan semula.

2. Penyelesaian

Terdapat banyak cara untuk melaksanakan fungsi ini, tetapi dalam artikel ini kita akan menggunakan sesi PHP untuk mencapainya. Sesi ialah teknologi yang menyimpan maklumat di bahagian pelayan Anda boleh mencapai penyimpanan data pengguna yang berterusan dengan menetapkan pembolehubah sesi. Apabila pengguna menutup penyemak imbas, sesi dimusnahkan secara automatik. Seterusnya kami akan memperkenalkan cara menggunakan sesi PHP untuk merealisasikan fungsi mengklik butang untuk menyimpan syarat pertanyaan.

  1. Buat halaman carian

Pertama, kita perlu membuat halaman carian, termasuk beberapa syarat carian dan butang "Simpan syarat pertanyaan", seperti yang ditunjukkan di bawah:

<html>
<head>
    <title>搜索页面</title>
</head>
<body>
    <form method="get" action="result.php">
        <label>关键字:</label>
        <input type="text" name="keyword"><br>
        <label>日期:</label>
        <input type="date" name="date"><br>
        <label>类型:</label>
        <select name="type">
            <option value="1">新闻</option>
            <option value="2">论文</option>
            <option value="3">博客</option>
        </select><br>
        <input type="submit" value="搜索">
        <input type="button" value="保存查询条件" onclick="saveSearch()">
    </form>
</body>
</html>

Dalam halaman ini, kami menggunakan teg borang HTML untuk mencipta borang carian dan menggunakan beberapa elemen HTML untuk memasukkan syarat carian. Ambil perhatian bahawa dalam teg input terakhir, kami menetapkan acara onclick Apabila pengguna mengklik butang "Simpan Syarat Pertanyaan", acara ini akan mencetuskan fungsi JavaScript saveSearch().

  1. Menulis fungsi JavaScript

Dalam langkah sebelumnya, kami menyediakan acara onclick, yang akan mencetuskan fungsi JavaScript saveSearch(). Mari kita laksanakan fungsi ini Fungsi fungsi ini adalah untuk menyimpan keadaan carian semasa ke dalam sesi PHP.

<script>
function saveSearch() {
    var keyword = document.getElementsByName("keyword")[0].value;
    var date = document.getElementsByName("date")[0].value;
    var type = document.getElementsByName("type")[0].value;
    var search = {"keyword": keyword, "date": date, "type": type};
    var searchStr = JSON.stringify(search);
    sessionStorage.setItem("search", searchStr);
}
</script>

Dalam fungsi ini, kami mula-mula mendapatkan kriteria carian yang dimasukkan oleh pengguna, dan kemudian menyimpannya ke dalam carian objek JavaScript. Seterusnya, kami menggunakan JSON.stringify untuk menukar objek ini menjadi rentetan JSON dan menyimpannya ke sesi PHP dengan nama "carian".

  1. Muat syarat carian

Apabila pengguna mencari semula, kami perlu memuatkan syarat carian yang disimpan sebelum ini daripada sesi PHP. Kami boleh menambah sekeping kod PHP pada halaman hasil carian untuk memuatkan syarat ini:

<?php
session_start();
if (isset($_SESSION[&#39;search&#39;])) {
    $search = json_decode($_SESSION[&#39;search&#39;], true);
    $keyword = $search[&#39;keyword&#39;];
    $date = $search[&#39;date&#39;];
    $type = $search[&#39;type&#39;];
}
?>

Dalam kod ini, kami mula-mula memanggil fungsi session_start() untuk membuka sesi, dan kemudian tentukan $_SESSION[ 'carian'] wujud. Jika ia wujud, ini bermakna syarat carian telah disimpan sebelum ini. Kami menggunakan json_decode untuk menukar rentetan JSON yang disimpan kepada tatasusunan PHP dan mendapatkan kata kunci, tarikh dan jenis daripadanya. Nilai ini boleh digunakan untuk memulakan input dan memilih kotak dalam borang carian.

  1. Menggunakan kriteria carian yang dimuatkan

Akhir sekali, kita perlu menggunakan kriteria carian yang dimuatkan untuk melaksanakan operasi carian. Kita boleh menambah fungsi JavaScript initSearch() dalam teg borang halaman carian untuk memulakan keadaan carian:

<script>
function initSearch() {
    <?php
    if (isset($keyword)) {
        echo "document.getElementsByName(&#39;keyword&#39;)[0].value = &#39;$keyword&#39;;";
    }
    if (isset($date)) {
        echo "document.getElementsByName(&#39;date&#39;)[0].value = &#39;$date&#39;;";
    }
    if (isset($type)) {
        echo "document.getElementsByName(&#39;type&#39;)[0].value = &#39;$type&#39;;";
    }
    ?>
}
</script>

Fungsi ini akan dilaksanakan apabila halaman dimuatkan dan menetapkan nilai keadaan carian ke kotak input yang sepadan dan pilih kotak. Kami hanya perlu menambah acara onload dalam teg borang:

<form method="get" action="result.php" onload="initSearch()">

Dengan cara ini, apabila pengguna mengakses halaman carian, jika syarat carian telah disimpan sebelum ini, syarat ini akan dimulakan ke kotak input dan kotak pilihan yang sepadan, pengguna boleh menggunakannya secara langsung untuk operasi carian.

3. Ringkasan

Artikel ini memperkenalkan cara menyimpan keadaan carian melalui sesi PHP, dan memuatkan syarat yang disimpan secara terus semasa carian seterusnya, supaya pengguna boleh melakukan operasi carian dengan cepat. Fungsi ini sangat membantu untuk pengalaman carian pengguna, mengurangkan bilangan input pengguna dan meningkatkan kepuasan pengguna.

Atas ialah kandungan terperinci Analisis ringkas tentang cara melaksanakan fungsi mengklik butang untuk menyimpan syarat pertanyaan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn