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

时间:2015-03-18 15:13:48

标签: 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 个答案:

答案 0 :(得分:1)

仅举几例:


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

  2. 你必须把你的js代码放在构造图像元素的php代码之前,或者你必须使用jquery&#39; s $(document).ready(function(){//your code});确保您正在为图像注册click事件侦听器。

  3. 关于你的js改变:
    var dataString = 'id='+id;var dataString = id;
    url: "./pictures.php"到网址:"pictures.php"