2015-03-18 2 views
1

Ok поэтому у меня есть одна страница, которая называется albums.php, со следующим кодом:передачи данных из одной PHP страницы на другую с помощью AJAX

<?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); 
     } 
    }); 
}); 

Моя цель состоит в том, чтобы передать идентификатор щелкнутыми изображения для pictures.php с помощью Ajax , Мой код 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(); 

?> 

У меня также есть, чтобы связать сценарий button.js в pictures.php? Кроме этого, я не могу думать о возможной проблеме с этим кодом. Кстати, все три этих файла хранятся в той же папке на моем сервере, поэтому я считаю, что я обращаюсь к ним правильно. Любая помощь приветствуется!

+0

идентификаторы уникальны, вы не можете иметь несколько изображений с ID равным 'образ'. Кажется, у вас есть класс и ID, смешанный ... –

+0

hv вы включили jquery? – dsharew

+0

Вам не нужен javascript, если вы его не используете, и он не похож на вас. – RiggsFolly

ответ

1

Просто упомянуть несколько вещей:


  1. Как уже отмечалось в комментарии Идентификаторы должны быть уникальными, но он не будет врезаться ваш код.

  2. Вы должны поставить код js перед кодом php, который создает элементы изображения, или вы должны использовать jquery's $(document).ready(function(){//your code}); чтобы убедиться, что вы регистрируете прослушиватель событий щелчка для изображений.

  3. На вашем изменении JS:
    var dataString = 'id='+id; к var dataString = id; и
    url: "./pictures.php" к URL: "pictures.php"

+0

Я добавил в $ (document) .ready и изменил url на picture.php, и это заставило его начать работать немного лучше. Теперь, когда я делаю console.log (id), первое изображение выводит его идентификатор на консоль, но второе изображение не работает. Оба они все еще не отображают изображения, которые они содержат, как они предполагают. Как работает var dataString = + id?Когда я это сделал, я получил предупреждение о неопознанном индексе. – jfarese23

+0

не удалять + перед идентификатором, проверить обновленный ответ – dsharew

+0

Nevermind, я просто получил его. Мне пришлось изменить функцию успеха для html, чтобы на самом деле была переписана. Спасибо за помощь, я ценю это. – jfarese23

Смежные вопросы