php – 如何加载内容而不刷新多个查询字符串

前端之家收集整理的这篇文章主要介绍了php – 如何加载内容而不刷新多个查询字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想通过菜单中的多个查询字符串将动态内容加载到特定的div名称.

示例动态菜单链接

index.PHP?tag=2
index.PHP?category=1&tag=2
index.PHP?category=2&tag=2&location=3

用于链接index.PHP?category = 1& tag = 2的PHP中的示例查询过程

$tag = intval($_GET['tag']);
$cat = intval($_GET['category']);

if(isset($tag) && isset($cat)) {
$select = $db->query("SELECT * FROM table WHERE cat=".$cat." AND tag=".$tag."");
... // fetch results
}

问题 – 使用jQuery如何告诉用户点击链接,然后将回调发送到PHP进程&在特定的div名称显示结果,而不刷新页面.

让我知道

描述

>您必须创建另一个PHP页面,以返回给定子串的json格式的数据.您的子字符串是动态的,因此您必须从另一个元素获取子字符串.我建议一个< input type =“hidden”value =“YourQueryString”/>,它的简单.您可以将元素放在链接旁边,并使用jQuery.val()获取该值.
>然后在index.PHP中使用jQuery.ajax()/ jQuery.get()或jQuery.post()从该页面/脚本获取数据. (jQuery.get()和jQuery.post()在内部使用jQuery.ajax()
>在jQuery ajax的回调方法中,您抓取数据并从中构建html.
之后,您可以使用jQuery.html()将数据设置为div.

样品

html / PHP

<a class="AnyClassName">Click me</a>
<input type="hidden" value="category=1&tag=2"/>

jQuery的

$(".AnyClassName").click(function() {
    // lets get the query string
    var queryString = $(this).next().val();
    $.ajax({
      url: "yourNewPage.PHP?" + queryString,context: document.body,success: function(data){
        var generatedHtml = "..." // build your html from the data object
        $("#IdOfYourDiv").html(generatedHtml);
      }
    });
});

更新

或者您的PHP页面可以返回您的查询字符串的html(简单页面).这比在jQuery Ajax回调中构建html更容易.如果这样做,你可以做到这一点

$(".AnyClassName").click(function() {
    // lets get the query string
    var queryString = $(this).next().val();
    $('#IdOfYourDiv').load("yourNewPage.PHP?" + queryString);
});

更多信息

文档

> jQuery.ajax()
> jQuery.post()
> jQuery.get()
> jQuery.load()
> jQuery.html()
> jQuery.val()
> jQuery.next()

教程

> jQuery,Ajax,Json and Php
> Use jQuery and PHP to build an Ajax-driven Web page

原文链接:https://www.f2er.com/php/131607.html

猜你在找的PHP相关文章