好的,我有一个名为 albums.php 的页面,其中包含以下代码:
<?php
require_once('./config.php');
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$album = $mysqli->query("SELECT * FROM Albums");
print('<div id="grid">');
print('<ul>');
while ($row = $album->fetch_assoc()) {
$cover = $row['Album_Cover'];
$name = $row['Album_Name'];
$id = $row['Album_ID'];
print ('<li>');
print('<form method="POST" action="">');
print("<input type='image' src=$cover name='image' id='image' class=$id>");
print("</form>");
print('<br/>');
print ("$name");
print ('</li>');
}
print('</ul>');
print('</div>');
print('<br/>');
print('<br/>');
print('<br/>');
print('<br/>');
$mysqli->close();
?>
DB_HOST、DB_USER、DB_PASSWORD 和 DB_NAME 来自 config.php。 albums.php(同样是上面的代码)链接到脚本button.js,其代码如下:
$("#image").click(function(e) {
e.preventDefault();
var id = $(this).attr('class');
var dataString = 'id='+id;
$.ajax({
type: "POST",
data: dataString,
url: "./pictures.php",
success: function(data) {
alert(data);
}
});
});
我的目标是使用ajax将单击图像的id传递到pictures.php。我的 pictures.php 代码如下:
<?php
require_once('./config.php');
require_once('./albums.php');
$id = $_POST['id'];
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$pictures = $mysqli->query("SELECT * FROM Pictures WHERE Album_ID = $id");
print('<div id="grid">');
print('<ul>');
while ($row = $pictures->fetch_assoc()) {
$picture = $row['Picture'];
print("<li><img src=$picture class='thumbnail'></li>");
}
print('</ul>');
print('</div>');
$mysqli->close();
?>
我还必须链接 pictures.php 中的button.js 脚本吗?除此之外,我想不出这段代码可能存在的问题。顺便说一句,所有这三个文件都存储在我的服务器上的同一文件夹中,因此我相信我正在正确访问它们。任何帮助将不胜感激!
最佳答案
仅提几件事:
正如评论中提到的,ID 必须是唯一的,但它不会使您的代码崩溃。
您必须将 js 代码放在构造图像元素的 php 代码之前,或者必须使用 jquery 的
$(document).ready(function(){//your code})
;确保您正在注册图像的单击事件监听器。关于你的 js 更改:
var dataString = 'id='+id;
到var dataString = id;
和
url:“./pictures.php”
到 url:“pictures.php”
关于javascript - 使用 ajax 将数据从一个 PHP 页面传递到另一页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29125741/