- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的页面是 www.aarontomlinson.com
我是 Jquery mobile 新手,我想转换我的网站。我有一个 AJAX 函数,可以获取用户位置并将变量发送到 php 页面。使用他们的位置,我可以获得与用户的距离以及存储在 MySQL 表中的店面位置。唯一的问题是,我无法将 php 结果放入 jquery ListView 中。
在我的页面上,我有一个示例,展示了我想要看到的内容与正在发生的情况。
我已经尝试了很多列表刷新选项,我不知道我在做什么,我非常感谢我能得到的任何帮助。
还有实际上,有时在我访问另一个页面后但在刷新时却无法正常工作。
这是我的代码:
头
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
脚本
$(document).ready(function(){
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showSuggested);
} else {
$('#suggested').html('Geolocation is not supported by this browser.');
}
});
function showSuggested(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
$.ajax({
type:'POST',
url:'suggested.php',
data:'latitude='+latitude+'&longitude='+longitude,
success:function(msg){
if(msg){
$("#suggested").html(msg);
}else{
$("#suggested").html('Not Available');
}
}
});
}
$(function(){
$( "[data-role='header'], [data-role='footer']" ).toolbar();
});
HTML
<div data-role="page" id="pageone">
<div id="navtop" data-role="header" data-position="fixed" data-id="navtop" >
<h1>Ground Up</h1>
</div>
<div data-role="header" id="mylocation"></div>
<!--banner-->
<div id="banner"></div>
<!--banner-->
<div id="sticky-anchor"></div>
<div id="sticky" class="filter" style="">
<div id="header" style="z-index: 6000;">
<div class="container">
<nav id="navigation"> <div class="logo">Filter</div> <button2><a aria-label="mobile menu" class="nav-toggle"> <span></span> <span></span> <span></span> </a></button2>
<ul id="tabs" class="menu-left">
<li><button2><a id="tab1" ><div style="width:100vw;white-space:nowrap;overflow: hidden;">Suggested</div></a></button2></li>
<li><button2><a id="tab2">Distance</a></button2></li>
<li><button2><a id="tab3">Rating</a></button2></li>
<li><button2><a id="tab4">OPEN</a></button2></li>
<li><button2><a id="tab5">Delivery Price</a></button2></li>
</ul>
</nav>
</div>
</div>
</div>
<div style="height: 200vh" data-role="main" class="ui-content">
<div class="tabcontainer" id="tab1C">
<ul data-role="listview" >
<li><a href="#">
<img src="https://www.aarontomlinson.com/images/MMD.png">
<h2>Name</h2>
<p>Distance</p>
<p class="ui-li-aside">OPEN</p>
<div style="display: flex;" id="" class="">
<div style="flex: 1;" id="" class=""><i style="padding-bottom:5px;width:30px;vertical-align:middle;" class="material-icons">star_rate</i> 4.5
</div>
<div style="flex: 1;" id="" class=""><i style="padding-bottom:5px;width:30px;vertical-align:middle;" class="material-icons">time_to_leave</i> $20</div>
</div>
</a>
</li>
</ul>
<ul id="suggested" data-role="listview" class="ui-listview" >
</ul>
<a href="#pagetwo" data-transition="fade">Fade to Page Two</a>
</div>
<div class="tabcontainer" id="tab2C">
<div style="" id="ShopsDistance">b</div>
</div>
<div class="tabcontainer" id="tab3C">
<div style="" id="ShopsRating">c</div>
</div>
<div class="tabcontainer" id="tab4C">
<div style="" id="ShopsOpen">d</div>
</div>
<div class="tabcontainer" id="tab5C">
<div style="" id="ShopsDelivery">e</div>
</div>
</div>
<div data-role="footer" data-id="navbtm" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a class="navbtmbtn" data-role="button" href="a.html">Home</a></li>
<li><a class="navbtmbtn" data-role="button" href="b.html">SmokeShop</a></li>
<li><a class="navbtmbtn" data-role="button" href="c.html">Orders</a></li>
<li><a class="navbtmbtn" data-role="button" href="d.html">Account</a></li>
</ul>
</div><!-- /navbar -->
</div><!-- /footer -->
</div>
建议.php
<?php
session_start();
date_default_timezone_set('America/Los_Angeles');
$currency = '$';
if(!empty($_POST['latitude']) && !empty($_POST['longitude'])){
//Send request and receive json data by latitude and longitude
$url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($_POST['latitude']).','.trim($_POST['longitude']).'&sensor=false';
$json = @file_get_contents($url);
$data = json_decode($json);
$status = $data->status;
$mylat = $_POST['latitude'];
$mylng = $_POST['longitude'];
$_SESSION["latitude"] = "latitude";
$_SESSION["longitude"] = "longitude";
if($status=="OK"){
//Get address from json data
$location = $data->results[0]->formatted_address;
}else{
$location = '';
}
$mylat = 34.103736;
$mylng = -118.328646;
$db_username = '---------';
$db_password = '-------';
$db_name = '-----------';
$db_host = 'localhost';
$mysqli = new mysqli($db_host, $db_username, $db_password,$db_name);
if ($mysqli->connect_error) {
die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
$results = $mysqli->query("SELECT dispensaries.pagelink, dispensaries.id, dispensaries.name, dispensaries.image, dispensaries.rating, dispensaries.shop_id, dispensaries.delivery_price, shop_hours.day_of_week, shop_hours.open_time, shop_hours.close_time, ( 3959 * acos( cos( radians('$mylat') ) * cos( radians( dispensaries.lat ) ) * cos( radians( dispensaries.lng ) - radians('$mylng') ) + sin( radians('$mylat') ) * sin( radians( dispensaries.lat ) ) ) ) AS distance FROM dispensaries INNER JOIN shop_hours ON dispensaries.shop_id= shop_hours.shop_id WHERE shop_hours.day_of_week = DATE_FORMAT(NOW(), '%w') HAVING distance < 10000 ORDER BY dispensaries.id ASC");
if($results){
//fetch results set as object and output HTML
while($obj = $results->fetch_object())
{
$opentime = $obj->open_time;
$closetime = $obj->close_time;
$t = date("H:i:s");
if($t > $opentime && $t < $closetime) {
$openclosed = "<open style='color:green;text-decoration: none;'>OPEN</open>";
} else {
$openclosed = "<closed style='color:red;text-decoration: none;'>CLOSED</closed>";
}
$distance = round($obj->distance , 1);
$ShopsSponsored .= <<<EOT
<li>
<a href="{$obj->pagelink}" data-transition="slide">
<img src="https://www.aarontomlinson.com/images/{$obj->image}">
<h2>{$obj->name}</h2>
<p>{$distance}</p>
<p class="ui-li-aside">{$openclosed}</p>
<div style="display: flex;" id="" class="">
<div style="flex: 1;" id="" class=""><i style="padding-bottom:5px;width:30px;vertical-align:middle;" class="material-icons">star_rate</i> {$obj->rating}
</div>
<div style="flex: 1;" id="" class=""><i style="padding-bottom:5px;width:30px;vertical-align:middle;" class="material-icons">time_to_leave</i>{$currency}{$obj->delivery_price}</div>
</div>
</a>
</li>
EOT;
}
}
echo $ShopsSponsored;
}
?>
SQL 表
Table structure for table `dispensaries`
--
CREATE TABLE IF NOT EXISTS `dispensaries` (
`id` varchar(10) NOT NULL,
`shop_id` int(11) unsigned NOT NULL,
`name` varchar(50) NOT NULL,
`image` varchar(100) NOT NULL,
`pagelink` varchar(100) NOT NULL,
`street` varchar(50) NOT NULL,
`ZIP` int(5) NOT NULL,
`phone` varchar(10) NOT NULL,
`email` varchar(50) NOT NULL,
`description` varchar(500) NOT NULL,
`rating` decimal(2,1) NOT NULL,
`updated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`lng` varchar(50) NOT NULL,
`lat` varchar(50) NOT NULL,
`pageviews` int(11) NOT NULL,
`delivery_price` decimal(10,2) NOT NULL,
`reviews` int(11) NOT NULL,
`orders` int(11) NOT NULL,
`revenue` decimal(10,2) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`name`),
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Dumping data for table `dispensaries`
--
INSERT INTO `dispensaries` (`id`, `shop_id`, `name`, `image`, `pagelink`, `street`, `ZIP`, `phone`, `email`, `description`, `rating`, `updated`, `lng`, `lat`, `pageviews`, `delivery_price`, `reviews`, `orders`, `revenue`) VALUES
('1', 1, 'MMD', 'MMD.png', '#mmd', '1515 N Cahuenga', 90028, '315265456', 'mmd@hey.com', 'Hollywood', '4.5', '2017-05-06 00:04:09', '-118.329758', '34.098499', 73834, '20.00', 0, 0, '0.00'),
('2', 2, 'Mr. Naturals', 'mrnaturals.jpg', '#mrnaturals', '521 S Alvarado St', 90057, '2132568312', 'mr.naturalsdtla@gmail.com', 'FTP FREE EIGHTH', '4.8', '2017-05-11 00:30:16', '-118.274480', '34.060165', 159099, '20.00', 0, 0, '0.00'),
('3', 3, 'The Kind Center, Inc.', 'kindcenter.jpeg', '#kindcenter', '1944 North Cahuenga Blvd', 90068, '323318905', 'kindcenter420@gmail.com', 'Hollywood', '4.5', '2017-05-11 01:45:58', '-118.330479', '34.106565', 135716, '20.00', 0, 0, '0.00'),
('4', 4, 'Lounge 64', 'lounge64.jpg', '#lounge64', '874 N. Virgil Ave', 90029, '310280648', 'The710Club@gmail.com', 'OPEN 24/7', '4.5', '2017-05-14 03:55:12', '-118.286673', '34.087545', 51934, '10.00', 0, 0, '0.00');
SQL 时间表
Table structure for table `shop_hours`
--
CREATE TABLE IF NOT EXISTS `shop_hours` (
`id` int(11) NOT NULL,
`shop_id` int(11) unsigned NOT NULL,
`day_of_week` int(11) unsigned NOT NULL,
`open_time` time NOT NULL,
`close_time` time NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `shop_hours`
--
INSERT INTO `shop_hours` (`id`, `shop_id`, `day_of_week`, `open_time`, `close_time`) VALUES
(1, 1, 0, '10:00:00', '20:00:00'),
(2, 1, 1, '10:00:00', '20:00:00'),
(3, 1, 2, '10:00:00', '20:00:00'),
(4, 1, 3, '10:00:00', '20:00:00'),
(5, 1, 4, '10:00:00', '20:00:00'),
(6, 1, 5, '10:00:00', '20:00:00'),
(7, 1, 6, '10:00:00', '20:00:00'),
(8, 2, 0, '10:00:00', '20:00:00'),
(9, 2, 1, '10:00:00', '24:00:00'),
(10, 2, 2, '10:00:00', '20:00:00'),
(11, 2, 3, '10:00:00', '20:00:00'),
(12, 2, 4, '10:00:00', '20:00:00'),
(13, 2, 5, '10:00:00', '20:00:00'),
(14, 2, 6, '10:00:00', '20:00:00'),
(15, 3, 0, '10:00:00', '20:00:00'),
(16, 3, 1, '10:00:00', '20:00:00'),
(17, 3, 2, '10:00:00', '20:00:00'),
(18, 3, 3, '10:00:00', '20:00:00'),
(19, 3, 4, '10:00:00', '20:00:00'),
(20, 3, 5, '10:00:00', '20:00:00'),
(21, 3, 6, '10:00:00', '20:00:00'),
(22, 4, 0, '00:00:00', '24:00:00'),
(23, 4, 1, '00:00:00', '24:00:00'),
(24, 4, 2, '00:00:00', '24:00:00'),
(25, 4, 3, '00:00:00', '24:00:00'),
(26, 4, 4, '00:00:00', '24:00:00'),
(27, 4, 5, '00:00:00', '24:00:00'),
(28, 4, 6, '00:00:00', '24:00:00');
以防万一页面 JavaScript
<script>
// TOGGLE HAMBURGER & COLLAPSE NAV
$('.nav-toggle').on('click', function() {
$(this).toggleClass('open');
$('.menu-left').toggleClass('collapse');
});
// REMOVE X & COLLAPSE NAV ON ON CLICK
$('.menu-left a').on('click', function() {
$('.nav-toggle').removeClass('open');
$('.menu-left').removeClass('collapse');
});
function sticky_relocate() {
var window_top = ($(window).scrollTop()+44);
var div_top = $('#sticky-anchor').offset().top;
if (window_top > div_top) {
$('#sticky').addClass('stick');
$('#sticky-anchor').height($('#sticky').outerHeight());
} else {
$('#sticky').removeClass('stick');
$('#sticky-anchor').height(0);
}
}
$(function() {
$(window).scroll(sticky_relocate);
sticky_relocate();
});
$(document).ready(function() {
$('#tabs li a:not(:first)').addClass('inactive');
$('.tabcontainer').hide();
$('.tabcontainer:first').show();
$('#tabs li a').click(function(){
var t = $(this).attr('id');
if($(this).hasClass('inactive')){ //this is the start of our condition
$('#tabs li a').addClass('inactive');
$(this).removeClass('inactive');
$('.tabcontainer').hide();
$('#'+ t + 'C').fadeIn('fast');
}
});
});
</script>
这是我的 CSS(如果有人想重现这种情况)
<style >
a{
text-decoration:none!important;
color:black!important;
font-weight:normal!important;
}
* {
box-sizing: border-box;
}
html {
box-sizing: border-box;
margin: 0;
overflow-x: hidden;
}
body {
overflow-x: hidden;
}
[data-role="page"]{
overflow-y: hidden;
}
#pageone{
}
[data-role="header"] {
background-color: rgba(245,242,242,0.95);
}
[data-id="navtop"],#navtop {
background-color: rgba(245,242,242,0.95);
border-bottom: solid;
border-bottom-width: 0.5px;
border-bottom-color: rgba(117,117,117,0.92);
color: rgba(89,151,85,1.00);
letter-spacing: 2px;
}
#mylocation{
font-size: 12px;
letter-spacing: 2px;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
min-height: 40px;
text-align: center;
line-height: 40px;
padding-left: 60px;
padding-right: 60px;
background-color: rgba(245,242,242,0.95);
margin-left: auto;
margin-right: auto;
}
#banner{
height: 120px;
background-color:white;
border-bottom: solid;
border-bottom-width: 0.5px;
border-bottom-color: rgba(117,117,117,0.92);
background-image: url(https://www.aarontomlinson.com/images/sprout.jpg);
background-size: cover;
background-position: 50% 20%
}
[data-id="navbtm"] {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
font-size: 8px;
}
.navbtmbtn {
height:60px;
line-height: 40px;
letter-spacing: 2px;
font-size: 8px;
background-color: rgba(245,242,242,0.95);
}
/*--------------------------------FILTER BAR --------------------------*/
.container {
padding: 0px 15px 0px 15px; }
@media (min-width: 0) {
.container {
max-width: 480px;
margin-left: auto;
margin-right: auto;
}
.container:after {
content: " ";
display: block;
clear: both;
}
}
#header {
background-color: rgba(245,242,242,0.95);
top: 0;
left: 0;
width: 100%;
padding: .5rem 0;
z-index: 3;
will-change: transform;
transition: background 0.3s, -webkit-transform 0.5s cubic-bezier(0.694, 0.048, 0.335, 1);
transition: transform 0.5s cubic-bezier(0.694, 0.048, 0.335, 1), background 0.3s;
transition: transform 0.5s cubic-bezier(0.694, 0.048, 0.335, 1), background 0.3s, -webkit-transform 0.5s cubic-bezier(0.694, 0.048, 0.335, 1);
transform: translateY(0);
-webkit-transform: translateY(0);
border-bottom: solid;
border-bottom-width: 0.5px;
border-bottom-color: rgba(117,117,117,0.92);
}
#header nav .logo {
letter-spacing: 1.5px;
float: left;
padding-top: .25rem;
padding-bottom: .25rem;
margin-right: 1rem;
font-size: 1.25rem;
line-height: inherit;
font-weight: 500;
color: black;
}
#header nav .logo:after {
content: '';
display: table;
clear: both;
}
#header nav ul {
list-style: none;
padding-left: 0;
margin: 0;
}
header nav ul li {
float: none;
margin-left: 0;
}
#header nav ul li a { display: block; }
@media (min-width: 576px) {
#header nav ul li a { display: block; padding: .425rem 0rem;
}
}
ul { clear: both; }
ul li { padding: .5em 0; }
.hide-nav {
transform: translateY(-120% !important); -webkit-transform: translateY(-120%) !important; }
ul.menu-left {
display: block;
max-height: 0;
overflow: hidden;
-webkit-transition: all 0.1s ease-out;
-moz-transition: all 0.1s ease-out;
-ms-transition: all 0.1s ease-out;
-o-transition: all 0.1s ease-out;
transition: all 0.1s ease-out;
z-index: 10;
}
@media (min-width: 900px) {
ul.menu-left {
display: block !important;
}
}
ul.menu-left:before {
clear: both;
}
ul.menu-left.collapse { max-height: 100% !important; }
.nav-toggle {
display: block;
border-radius: 5px;
background-color: transparent;
float: right;
height: 38px;
width: 38px;
cursor: pointer;
padding: 8px 8px;
}
.nav-toggle.open span:first-child { transform: rotate(45deg) translate(4.4px, 4.4px); }
.nav-toggle.open span:nth-child(2) {
width: 0%;
opacity: 0;
float: none;
}
.nav-toggle.open{
}
.nav-toggle.open span:last-child { float: none; width: 100%;transform: rotate(-45deg) translate(4.4px, -4.4px); }
.nav-toggle span {
position: relative;
display: block;
height: 2px;
width: 100%;
margin-top: 4px;
background-color: #000;
transition: all .25s;
}
.nav-toggle span:nth-child(2) { width: 75%; float: right; }
.nav-toggle span:last-child { width: 50%; float: right; }
.menu-left{
border-radius: 5px;
}
.menu-left a {
letter-spacing: 1.5px;
font-size: 16px;
padding-left: 30px;
line-height: 35px;
display: inline-block;
position: relative;
padding-bottom: 0px;
transition: color .35s ease;
}
#sticky {
}
#sticky.stick {
margin-top: 0 !important;
position: fixed;
top: 44px;
z-index: 6000;
display: flex;
width: 100%;
}
/*-------FILTER BAR -----------*/
.itemContainer{
width:100%;
float:left;
}
.itemContainer div{
float:left;
margin: 5px 20px 5px 20px ;
}
.itemContainer a{
text-decoration:none;
}
.cartHeaders{
width:100%;
float:left;
}
.cartHeaders div{
float:left;
margin: 5px 20px 5px 20px ;
}
</style>
最佳答案
在 while 循环中使用变量“$ShopsSponsored”之前,您没有声明该变量。声明为
$ShopsSponsored = '';
在while循环之前
关于javascript - 如何将 JQuery Mobile 数据 Angular 色 ="listview"样式应用到 AJAX php/MySQL 页面结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44239380/
我正在尝试在项目中学习和添加 Angular 国际化。我只能理解 Angular 文档 (https://angular.io/guide/i18n-overview) 的编译时翻译。 我需要这样的东
在我的 Angular 应用程序中,基于登录用户,我想通过显示/隐藏不同的菜单项或允许/禁止某些路由来授予或限制功能。 目前成功登录后,我的 .NET Core API 会返回一个 JWT token
我是 Angular 的新手,目前我已经看过 angular.io 网站提供的一些示例。但是在component decorator在文档中的解释,它指出 Angular components are
这里是service employee-service.service.ts的代码 import { Injectable } from '@angular/core'; import { HttpC
我目前正在使用@angular/http URLSearchParams 类来检索 URL 参数。在 Angular 5 中,注意到这已被弃用,但我没有看到以我当前使用的方式替换 URLSearchP
我目前正在使用@angular/http URLSearchParams 类来检索 URL 参数。在 Angular 5 中,注意到这已被弃用,但我没有看到以我当前使用的方式替换 URLSearchP
如何正确安装 PUG/JADE 到 Angular 2 或更高版本 这样在工作和 AOT 和 JiT 的同时 工作单元和集成测试 并且在创建每个新组件时不会受到太多影响 最佳答案 我看到了很多解决方案
我的 Angular 12 应用程序中有一些通用组件,我计划将其创建为一个 Angular 库,以便其他应用程序也可以使用它。我们有一些应用程序在较低版本的 angular(例如 angular 8/
tl;dr; ng build 删除了包含我编译的自定义库的/dist 文件夹。这会使我项目代码中对该库的所有引用无效,从而导致 ng build 最终失败。我做错了什么? 我关注了documenta
我正在将一些“遗留”(非 typescript )js 库导入到我的 Angular SPA 中。 通常我只是从 cdn 添加一个负载到 index.html 就像: 在 Angular 分量中我只
我有这个 angular 应用程序,它基本上使用了库的概念。 我有 2 个名为 的库Lib1 和 lib2 根据他们所服务的微服务分组。 现在我将这些库导入主应用程序,即 应用1 事情一直到现在。 现
我在我的项目中启用了 angular Universal。我现在想完全删除它。我试图删除以下文件 /server.ts /webpack.server.config.js /src/tsconfig.
我已经有一个 AuthService 在登录时对用户进行身份验证,并且 AuthGuard 在未登录的情况下阻止访问。 某些页面我通过 UserProfile/Role 限制访问,但现在我需要阻止页面
我正在尝试使用 angular、TypeORM、SQLite 和其他组件作为 webpack 构建 Electron 应用程序。 我从在 GitHub 上找到的示例开始我的开发:https://git
我在从 Angular 8 更新到 9 并运行时遇到以下错误 ng 更新@angular/material: Package "@angular/flex-layout" has an incompa
我正在尝试使用 Angular 9,我想创建一个项目,然后创建一个库项目并开始向其中添加我想稍后在 GitHub 上发布的通用模块,并在我的本地使用这些库项目。 相关依赖如下: Angular CLI
我正在尝试使用 Angular 9,我想创建一个项目,然后创建一个库项目并开始向其中添加我想稍后在 GitHub 上发布的通用模块,并在我的本地使用这些库项目。 相关依赖如下: Angular CLI
我正在我的 h1 元素“之前”创建一个小的程式化三 Angular 形图案,但我无法正确地圆 Angular 。右上角没问题,但其他两个有剪裁问题。 这是输出以及形状的放大图像: 使用的代码如下: h
我有一个 Angular 元素,带有自定义标记名 - fancy-button。如何将 fancy-button 嵌入 Angular 应用程序? 我已经尝试了以下方法,但都没有用 - 在 index
我已将我的项目从 angular 5.2.9 升级到 angular 6.0.0-rc.5。 除了包路径中的几个快速 RxJS 修复外,一切看起来都不错。(此链接非常有用:Want to upgrad
我是一名优秀的程序员,十分优秀!