PHP 页面不会重新加载 # HTML

标签 php jquery html mysql updating

我正在使用 HTML 和 jQuery 为公司创建网站。这是一个移动网站,我使用 jQuery 和 HTML 创建了一个一次加载所有内容的网站(所有编码都在一个页面上,当您单击链接时,它会在 URL 栏中使用#pagename 更改页面。所以一旦你加载了主网站,你就不需要有互联网连接来进一步加载它。我开始都是用 HTML 然后决定我这样做是个白痴,因为有超过 500 个值将被打开网站。所以我将其更改为 PHP 并使用 mySQL 作为数据库。然后我对页面进行编码以显示网站外的信息。我遇到的问题是使用 PHP 编码时它不会将页面重新加载到单击它时会出现新页面。这可能会让人感到困惑,所以让我更好地解释并向您展示。

这是该网站的假设工作方式:http://communitymedics.com/app/

以下是网站如何使用 PHP 代码:http://communitymedics.com/app/index2.php

<?php 

$result = mysql_query("SELECT DISTINCT state FROM hospital ORDER BY state");

echo "<div data-role='page' id='locations-hospital'>";
echo "<div data-role='header' data-position='fixed'>";
echo "<h1>Locations</h1>";
echo "<a href='#' data-rel='back' data-theme='a'>Back</a>";
echo "</div><div data-role='content'><ul data-role='listview'><br><li data-role='list-divider'>Select State</li>";

while($row = mysql_fetch_array($result))
  {
  echo "<li><a href='#" . $row['state'] . "'>" . $row['state'] . "</a></li>";
  }
  ;
?> 

如果您注意到,当您单击某个州(例如印第安纳州)时,它不会执行任何操作,URL 中的链接不会更改,也不会更改为印第安纳州页面。

关于如何解决这个问题的任何想法。最后的想法是让它与现在整个 HTML 页面相似,但不确定我在 PHP 代码中缺少什么导致它无法打开该页面。

我的另一个问题是,如果您在 #locationhospitals 页面上,您会注意到顶部应该显示“选择状态”的标题没有显示,就像间距不正确一样。对此有什么想法吗?

谢谢!

最佳答案

您使用的只是 anchor ,它只作用于已经加载到浏览器中的页面,允许您跳转到文档中的不同点。不会发生的是对网络服务器的新请求。没有服务器请求,没有 PHP 运行。

那么我们该如何解决这个问题呢?

好吧,因为您现在正在使用 PHP 和数据库,所以您必须保持与服务器的连接才能使用您的应用程序(好吧,浏览器缓存放在一边,但那是另一天的不同问题)。你已经在使用 jQuery,太棒了!!

基本上,您将拥有一个容器,我们称它为

<div id="foo"></div>

使用 jQuery,将点击事件绑定(bind)到我们称之为的各种“按钮”。当有人点击一个时,我们将向您的 PHP 发出 AJAX 请求以获取数据并将其显示在容器内。当有人点击另一个“按钮”时,我们将用新数据替换旧数据。如果您真的想要...,您甚至可以使用现有的脚本...

也就是说没有进行一些邪恶的严重修改。 mysql_* 已弃用,您应该切换到 mysqli。我看不到你的数据参数从哪里进来,所以在将它们传递给你的查询之前确保它们是干净的。

自从 OP 询问以来,这里有一种 super 快速但肮脏的方法,可以将点击事件绑定(bind)到页面上的某个元素,然后使用它来发出请求

jQuery("#any_element_with_this_id").click(function(clickedElementReference){
    jQuery("#foo").empty();//might as well go ahead and empty our our container
        jQuery.get("phpscript.php",{"state_id":"IN"},function(dataFromYourScript){
            jQuery("#foo").html(dataFromYourScript);//insert our fresh data, hot off the press
        },"HTML");
    });

这太脏了,甚至可能不起作用,但它应该给你一个开始的地方。

关于PHP 页面不会重新加载 # HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20558055/

相关文章:

javascript - addEventListener 适用于 code pen 但不适用于 visual studio code

php - 限制将记录插入到 phpmyadmin wamp 中的表中

javascript - 在通过模型传递的 View 上显示列表

css - 使用javascript订购div

javascript - javascript 中的二维数组有点问题

javascript - 禁用多次点击 JavaScript

JQuery Datepicker 日期格式 - 如何从 dd/mm/yyyy 更改为 dd/mm/yy?

javascript - 使用 jquery 和 ajax 隐藏基于 db 的某些结果

php - 以表格形式显示插入数据库的数据

php - 如何从查询中循环遍历数组以返回总数?