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

Javascript 使用ajax将数据从一个PHP页面传递到另一个PHP页面,javascript,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('&

好的,我有一个名为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();

    ?>
我的目标是使用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”


  • ID是唯一的,不能有多个ID设置为“image”的图像。看起来你的类和ID混淆了…你包括了jquery吗?如果你不使用它,你就不需要javascript,而且看起来也不需要。codehx,我已经包括了jquery。怀特先生,我把课程改成了“图像”,把id改成了$id,但我还是一无所获。此外,当我进行此切换时,图像的所有样式都消失了,即使我在样式表中从#image更改为.image.riggsfully,javascript不是唯一能找到单击图像id的方法吗(通过id,我指的是$id,它已存储在每个图像的class属性中)?我在$(文档)中添加了.ready并将url更改为pictures.php,这使它开始工作得稍微好一点。现在,当我执行console.log(id)时,第一个映像将其id打印到控制台,但第二个映像没有。它们仍然不能像预期的那样显示它们包含的图像。var-dataString=+id是如何工作的?当我这么做的时候,我得到了一个未知索引的警报。没关系,我只是得到了它。我必须更改成功函数,才能真正重写html。谢谢你的帮助,我很感激。我会投你一票,但我刚刚加入,没有这样的名声:(
    <?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();
    
    ?>