好吧,我可能很难解释自己,因为我大麦知道我要求的东西。请记住,我显示的代码需要一些(很多)工作,但我现在正在寻求一个特定的功能。 但在这里:
我的移动应用程序应该显示书籍的摘要。这些书籍存储在数据库中。为了访问数据库,我有PHP文件。虽然,因为它是一个移动应用程序,我不能将这些PHP文件放在直接目录中,所以我在网站上有它们。 要从PHP文件中获取数据,我使用Javascript,AJAX。我将通过解释我的应用程序应该做什么和应该做什么来解决我遇到的问题:
author.html看起来像这样(部分):
<div id = "wrapper">
<div id = "main">
<p id = "back">
<a href = "index.html">« Back to Start</a>
</p>
<h1> Authors </h1>
<div class = "theauthor">
</div>
<div id = "authorlist">
</div>
<div id = "theauthor">
</div>
</div><!--wrapper-->
<script src="js/jquery.js"></script>
<script src = "js/index.js"></script>
<script>
onDeviceReady();
showAuthor();
</script>
并连接到authorlist.php:
$query = "SELECT DISTINCT author FROM books";
$result = mysqli_query($con, $query);
while($row = mysqli_fetch_array($result)){
$author = $row['author'];
?>
<li class = "theclick">
<p onclick = 'showAuthor("<?php echo $author; ?>")'><?php echo $author; ?></p>
</li>
<?php
} ?>
</ul>
通过AJAX函数:
function showMenu() {
$(”#authorlist”).load(”http://webpage.com/authorlist.php”);
}
这显示了author.html上所有唯一作者的列表。通过单击列表中选定的作者,比如Stephen King,我使用另一个代码来获取来自author.php的数据:
Javascript:
function showAuthor(author) {
$.get(”http://webpage.com/author.php”,
{
author:author
},
function(data){
$(".theauthor").html(data);
});
}
PHP:
$author = $_GET['author'];
$query = "SELECT * FROM books WHERE author = '$author'";
$result = mysqli_query($con, $query);
?>
<h1 class = "underheadline"><?php echo $author;?><h1>
<?php
while($row = mysqli_fetch_array($result)){
$author = $row['author'];
$title = $row['title'];
$id = $row['id'];
$image = $row['image'];
$genre = $row['genre'];
?>
<div class = "wrapper">
<img src = "<?php echo $image; ?>" class = "image"/>
<h2><a href = "books.html?id=<?php echo $id;?>"><?php echo $title; ?> </a></h2>
<p class = "author"><a href = "author.html?author=<?php echo $author;?>"><?php echo $author;?></a></p>
</br></div>
<?php
}
?>
到目前为止,这么好。一切正常,因为它应该(尽管不是最棒的代码,安全方面。)
然而,问题就出现了!正如您在author.php中看到的,我在“书籍”中有链接(在这种情况下仅在标题和作者上)。点击这些链接,我应该被重定向到前。 books.html,其中列出了所有书籍,或author.html,其中列出了所有作者,并显示所选书籍/作者数据。 我已经得到足够的帮助来找到一个帮助我从URL获取GET变量的代码:
/* Find GET variable */
function getQueryVariable(variable) {
var query = window.location.search.substring(1)
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=")
if(pair[0] == variable){
if(pair[1].indexOf('%20') != -1){
console.log(pair[1].indexOf('%20'))
var fullName = pair[1].split('%20')
console.log(fullName)
return fullName[0] + ' ' + fullName[1]
}
else {
return pair[1];
}
}
}
}
这让我看到的是读取URL。如果我选择点击作者,请再次说明Stephen King,URL将如下(使用localhost时): http://localhost/www/author.html?author=Stephen%20King
当我选择使用变量 author , Stephen King 时,函数 getQueryVariable 会找到。这不是问题,它找到了我想要的东西。 但是,我不知道如何从URL中检索和写出此变量附带的数据。我希望信息写在与选择列表项时相同的位置。
这就是我要求的。我之前曾尝试过问过这个问题,但是由于没有很好地解释这个问题,这本身就是我的错。所以...我正在尝试这种方法,请告诉我是否还有其他东西需要帮助我解决这个问题。