javascript - 使用 ajax 将数据从一个 PHP 页面传递到另一页面

标签 javascript php

好的,我有一个名为 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 脚本吗?除此之外,我想不出这段代码可能存在的问题。顺便说一句,所有这三个文件都存储在我的服务器上的同一文件夹中,因此我相信我正在正确访问它们。任何帮助将不胜感激!

最佳答案

仅提几件事:


  1. 正如评论中提到的,ID 必须是唯一的,但它不会使您的代码崩溃。

  2. 您必须将 js 代码放在构造图像元素的 php 代码之前,或者必须使用 jquery 的 $(document).ready(function(){//your code});确保您正在注册图像的单击事件监听器。

  3. 关于你的 js 更改:
    var dataString = 'id='+id;var dataString = id;
    url:“./pictures.php” 到 url:“pictures.php”

关于javascript - 使用 ajax 将数据从一个 PHP 页面传递到另一页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29125741/

相关文章:

javascript - NodeJS - 发送到客户端后无法设置 header

javascript - 编写更复杂的 json 模式,这些模式依赖于其他键

javascript - Array.prototype.includes 函数如何比较对象

javascript - ajax 调用后重新初始化 CSS-Element-Queries

php - undefined variable : num

PHP - 将两个数组(相同长度)合并为一个关联?

javascript - 仅在刷新页面后更改! (模态 Bootstrap )

php - 自动检测文件中是否存在 CSV header

javascript - 选择未选中

php - 将 PDF 转换为 PNG Imagemagick 时出错 : unable to create temporary file