javascript - 使用 AJAX Jquery 处理随机链接数

标签 javascript php jquery ajax

我是 AJAX 和 JQuery 的新手,正试图在我的网站部分使用它们。基本上,我拥有的网站具有这种设计,目前可以正常使用(对不起我糟糕的绘画工作:) website

网站中的项目是由用户创建的。这意味着项目编号不是常量,但可以通过数据库查询获取。 每个项目都有一个唯一的 URL,目前当您单击一个项目时,所有页面都会刷新。我想更改系统,让用户有机会通过仅更改中间内容区域来在这些项目之间快速导航,如上所示。但是我也希望每个项目都有一个唯一的 URL。我的意思是,如果该项目的名称类似于“stack overflow”,我希望该项目的 URL 类型为 dev.com/#stack-overflow 或类似名称。 我不介意可能来自 AJAX 的“#”。

在类似的主题中,我看到人们对项目使用固定的名称。例如 <a href="#ajax">但我的元素不是固定的。

我尝试了什么

我的想法是什么;在获取所有项目的链接时,我将链接保存在 $link 变量中并在 <a href="#<?php echo $link; ?>"> 中使用它. 在 $link 里面它不是实际的 URL。例如,它是一个像“stack-overflow”这样的名字,就像我在上面给出的例子一样。直到这部分没有问题。

问题

this topic一位 friend 提出了这种代码作为一种想法,我已经根据我的目的对其进行了更改。

<script>
    $(document).ready(function() {
      var router = {
        "<?php echo $link ?> ": "http://localhost/ajax_tut/link_process.php"
      };
      $(window).on("hashchange", function() {
        var route = router[location.hash];
        if (route === undefined) {
          return;
        } else {
          $(".content-right").load("" + route + " #ortadaki_baslik");
        }
      });
    });
</script>

 

我正在尝试将 $link 的值发布到 link_process.php,在 link_process.php 中,我将获取 $link 的值并安排要显示的必要页面内容。 问题是; - 我应该如何更改此代码才能做到这一点? - 我看不到有人做类似的事情来解决这个问题 问题。这是解决这种情况的正确方法吗? - 你们对我的案例有更好的解决方案或建议吗?

提前致谢。

最佳答案

WHEN 您的服务器端 AJAX 调用处理程序 [PHP 脚本 - 在服务器端处理 AJAX 请求] 是常量并且您将 item_id/link 作为 GET 参数传递...

例如: localhost/ajax_tut/link_process.php?item_id=stack-overflow localhost/ajax_tut/link_process.php?item_id=stack-exchange

然后您可以使用以下代码。

<script>
    $(document).ready(function() {
      var ajax_handler = "localhost/ajax_tut/link_process.php?item_id=";
      $(window).on("hashchange", function() {
        var route = location.hash;
        if (route === undefined) {
          return;
        } else {
          route = route.slice(1); //Removing hash character
          $(".content-right").load( ajax_handler + route );
        }
      });
    });
</script>


您将 item_id/link 作为 URL 部分而不是参数传递...

例如: localhost/ajax_tut/stack-overflow.php 本地主机/ajax_tut/stack-exchange.php

然后您可以使用以下代码。

<script>
    $(document).ready(function() {
      var ajax_handler = "localhost/ajax_tut/";
      $(window).on("hashchange", function() {
        var route = location.hash;
        if (route === undefined) {
          return;
        } else {
          route = route.slice(1); //Removing hash character
          $(".content-right").load( ajax_handler + route + ".php");
        }
      });
    });
</script>


WHEN 您的服务器端 AJAX 处理程序脚本 url 不是恒定的,并且因项目而异...

例如: localhost/ajax_tut/link_process.php?item_id=stack-overflow localhost/ajax_tut/fetch_item.php?item_id=stack-exchange 或者 localhost/ajax_tut/stack-exchange.php

然后我建议更改 PHP 脚本,它会生成位于左侧的项目链接。

<?php
  foreach($links as $link){
      // Make sure that you are populating route parameter correctly
      echo '<a href="'.$link['item_id'].'" route="'.$link['full_ajax_handler_route_url_path'].'" >'.$link['title'].'</a>'; 
  }
?>

这是Javascript

<script>
    $(document).ready(function() {
      var ajax_handler = "localhost/ajax_tut/"; //Base url or path
      $(window).on("hashchange", function() {
        var route = location.hash;
        if (route === undefined) {
          return;
        } else {
          route = route.slice(1); //Removing hash character
          route = $('a [href="'+.slice(1)+'"]').attr('route'); //Fetching ajax URL
          $(".content-right").load( ajax_handler + route ); //Here you need to design your url based on need
        }
      });
    });
</script>

关于javascript - 使用 AJAX Jquery 处理随机链接数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33962903/

相关文章:

javascript - 如何添加页面链接而不删除以前的页面链接

javascript - 有什么方法可以重命名 Facebook "Send"按钮吗?

javascript - 使用正则表达式进行电子邮件验证不适用于 jsf?

php - 如何将 '\\\' 替换为 '\' ?

javascript - 定义 document.ready() 函数的顺序?

javascript - Google Charts - 如何以堆叠形式显示数据 - 组合图表

javascript - 使用 XHR 调用将 JavaScript 值传递到 PHP 文件

PHP包含相对路径

javascript - 如何仅在桌面浏览器上时聚焦输入字段

jquery - 如何将自定义变量添加到 jQuery 可排序?