我有一个meny.php文件,它加载了ajax与id = content的div的选定链接,正如您在包含页脚之前所看到的那样。这段代码正在工作,这与此无关。我只是觉得这个代码可能会有帮助。当从数据库读取时可变覆盖
<!DOCTYPE html>
<?php
include 'includes/head.php';
?>
<body>
<script type="text/javascript">
$(document).ready(function() {
/* This is basic - uses default settings */
$("a.single_image").fancybox();
/* Using custom settings */
$("a#inline").fancybox({
'hideOnContentClick': true
});
/* Apply fancybox to multiple items */
$("a.group").fancybox({
'href' : '#fancybox-inner',
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'speedIn' : 600,
'speedOut' : 200,
'overlayShow' : false
});
$("a.single_image").fancybox({
'href' : '#fancybox-inner',
'titleShow' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'elastic'
});
});
$(function(){
// hide the div on page load and use a slidedown effect
$('div.content').fadeOut(0, function(){
$(this).slideDown(500);
});
// capture link clicks and slide up then go to the links href attribute
$('a.slide_page1').click(function(e){
e.preventDefault();
var $href = $(this).attr('href');
$('div.content').slideUp(500, function(){
// window.location = $href;
// alert($href);
});
});
});
</script>
<div class="page">
<?php
include 'includes/header.php';
?>
<div class="container-fluid" id = "bodu">
<div class="row-fluid">
<div class="span12">
<div class="bodu">
<div class="blog">
<div class="container-fluid">
<div class="row-fluid">
<div class="span2" id ="sidebarspan">
<h2>Meny</h2>
<ul id="nav">
<li id ="sidebar">
<a href="hamburgare">Hamburgare</a>
</li>
<li id ="sidebar">
<a href="maltider">Måltider</a>
</li>
<li id ="sidebar">
<a href="dryck">Dryck</a>
</li>
<li id ="sidebar">
<a href="tillbehor">Tillbehör</a>
</li>
<li id ="sidebar">
<a href="desserter">Desserter</a>
</li>
<li id ="sidebar">
<a href="övrigt">Övrigt</a>
</li>
</ul>
</div>
<div class="span10">
<div id = "content" class="content">
<script src="jquery/general.js"></script>
</div>
</div>
</div>
</div>
</div>
<?php
include 'includes/footer.php';
?>
</div>
</div>
</div>
</div>
<div id="bg-bottom" >
<img src="images/bg-bottom.png" alt="bottom">
</div>
</div>
</div>
</body>
现在到了真正的问题。假设我们从meny.php中选择了“hamburgere”。然后它会尝试加载,就像我用ajax hamburgare.php文件所说的那样。这个文件看起来像这样
<?php
include '../includes/head.php';
?>
<h1>Hamburgare!</h1>
<p>hamburgare är gott!</p>
<div class="row-fluid" id = "meals">
<div class="span12" id="right-pane">
<?php
$select = "SELECT * FROM hamburgare";
$sql = mysql_query($select) or die(mysql_error());
mysql_num_rows($sql);
while ($row = mysql_fetch_array($sql)) {
$name = "<name>".$row['name']."</name>";
$price = "<price>".$row['price']."</price>";
$description = "<description>".$row['description']." </description>";
$img = $row['image'];
$event = " <a name='$img' class='single_image' href='fancybox-inner' ><img src='Login/$img'/></a>";
echo $event;
/*closing the whileloop*/
}
?>
</div>
</div>
<div style="display:none">
<div id="fancybox-inner">
<?php
$query = mysql_query('SELECT name FROM hamburgare WHERE image = "' . $img . '"');
?>
<div class="container-fluid">
<div class="row-fluid">
<h2><?php echo $query ?></h2>
<h2><?php echo $name ?></h2>
<div class="span4">
<img src="Login/<?php echo $img; ?>" />
<!--Sidebar content-->
</div>
<div class="span8">
<?php echo $description ?>
<!--Body content-->
</div>
</div>
</div>
</div>
</div>
我想在这里做的是加载所有从hamburgare表中的图像数据库,现在我只是打印出来while循环的一个标签。这工作正常,但当客户点击其中一个图像时,应向客户展示更具体的信息。 这里发生的是当你点击其中一个图像时,fancybox-inner div显示,但fancybox-inner包含的信息是关于上次加载的图像。这意味着选择女巫图像无关紧要,它总是会显示关于上次加载的图像的信息。 原因是因为最后一个SQL查询中的WHERE子句,我比较了最后一个加载的图像($ img)和数据库中的图像。所以会发生什么是我得到这个重叠的问题。此外,我与$ img进行比较,而不是来自showsen a-tag的name = $ img,我不知道如何将其作为SQL查询编写。
我怎么会认为这个问题比这个大。我所做的唯一的事情就是隐藏fancybox-inner div,并在选择某些图像时显示它。该代码从一开始就执行。所以我需要Jquery/AJAX来为每个图像加载正确的信息。所以我想我需要为while循环中的每个a-tag添加onClick。 但是因为我是这个东西的新手,我不知道如何编写该代码。也许我的假设也是错误的。我不知道。
你们认为什么?我会很感激各种帮助。
在此先感谢
你覆盖'$名称,$描述,$ image'等在'while'循环,这就是为什么你会得到这个循环只有最后一个值。 – NullPointer 2013-05-08 08:54:37
['MySQL'](http://php.net/manual/en/book.mysql.php)(_mysql _ * _ functions)扩展名是[*** deprecated ***](http://php.net) /manual/en/function.mysql-connect.php)。我建议使用['MySQLi'](http://php.net/manual/en/book.mysqli.php)(_mysqli _ * _ functions)或['PDO'](http://php.net/manual改为/en/book.pdo.php)。 – BlitZ 2013-05-08 08:54:46
你没有使用'mysql_num_rows()'的返回值。 – feeela 2013-05-08 08:58:24