Jump to content
  • 0

Нужна помошь в использовании .load


drew
 Share

Question

Доброго времени суток!

Пытаюсь реализовать следующий момент, при нажатии на картинку засунутую в <div>, должна появиться другая.

В success хорошо выполняется alert, а дальше всё пропадает, вижу только пустую страницу.

Только начал изучать jquery и думаю, что ошибка выполнения .load, но я не знаю как должно быть правильно.

Буду очень рад подсказке!

index.php:

<div id="black_side">
<?php
require_once ('func/_connect_bd.php');

$result = mysql_query("SELECT * FROM tblPics WHERE id_pic = '18'");
$f = mysql_fetch_array($result);

echo "<h2>$f[text_pic]</h2><br/>";
echo "<img id=\"pic\" alt=\"$f[id_pic]\" src=\"image/$f[name_pic]\" width=\"500px\" />";
?>
</div>

change.js:

function out_pic(){
$("#black_side").load("change_pic.php");
}

$(document).ready(function(){
var name_pic = $("#pic").attr("alt");
$("#black_side").click(
function () {
$.ajax({
type: "POST",
url: "add_choice.php", /*Здесь я обращаюсь ещё к одному php файлу, не думаю, что как-то влияет*/
data: "name="+name_pic,
success: function(){ /* В случае успеха хочу выполнить out_pic(), которая и вызовет php файл*/
out_pic();
alert(name_pic);
}
});
}
);
});

change_pic.php


<?php
require_once ('func/_connect_bd.php');

$result = mysql_query("SELECT * FROM tblPics WHERE id_pic = '18'");
$f = mysql_fetch_array($result);

echo "<h2>$f[text_pic]</h2><br/>";
echo "<img id=\"pic\" alt=\"$f[id_pic]\" src=\"image/$f[name_pic]\" width=\"500px\" />";
?>

Link to comment
Share on other sites

16 answers to this question

Recommended Posts

  • 0

А что делает .load()?

Может как-нибудь так:

document.getElementById('black_side').innerHTML='строка, полученная через ajax';

Я не секу в jquery, где обработка ответа ajax'а?

Ааааа, я понял, аякс обращается к другому файлу и ничего не возвращает. Так, может, сделать чтобы возвращал? Или делать второй ajax-запрос. Я бы всё это сделал без jquery =)

Link to comment
Share on other sites

  • 0

А что делает .load()?

Может как-нибудь так:

document.getElementById('black_side').innerHTML='строка, полученная через ajax';

Я не секу в jquery, где обработка ответа ajax'а?

Ааааа, я понял, аякс обращается к другому файлу и ничего не возвращает. Так, может, сделать чтобы возвращал? Или делать второй ajax-запрос. Я бы всё это сделал без jquery =)

load подгружает документ, с .txt файлами срабатывает на ура, почему на php файл такая реакция я не понимаю.

Сделать с помощью innerHTML я пока не могу, пока не знаю каким образом вернуть полученную строку из php документа средствами аякса, но спасибо за наводку, буду рассматривать как вариант.

Link to comment
Share on other sites

  • 0

А что делает .load()?

Может как-нибудь так:

document.getElementById('black_side').innerHTML='строка, полученная через ajax';

Я не секу в jquery, где обработка ответа ajax'а?

Ааааа, я понял, аякс обращается к другому файлу и ничего не возвращает. Так, может, сделать чтобы возвращал? Или делать второй ajax-запрос. Я бы всё это сделал без jquery =)

load подгружает документ, с .txt файлами срабатывает на ура, почему на php файл такая реакция я не понимаю.

Сделать с помощью innerHTML я пока не могу, пока не знаю каким образом вернуть полученную строку из php документа средствами аякса, но спасибо за наводку, буду рассматривать как вариант.

Уверен, что с php скриптом всё в порядке?? Может из-за php скрипта jQuery не может получить данные?? а с .txt всё в порядке ясное дело..

Link to comment
Share on other sites

  • 0

Уверен, что с php скриптом всё в порядке?? Может из-за php скрипта jQuery не может получить данные?? а с .txt всё в порядке ясное дело..

вот скрипт, вроде всё ок.

<?php
require_once ('func/_connect_bd.php');

$result = mysql_query("SELECT * FROM tblPics WHERE id_pic = '18'");
$f = mysql_fetch_array($result);

echo "<h2>$f[text_pic]</h2><br/>";
echo "<img id=\"pic\" alt=\"$f[id_pic]\" src=\"image/$f[name_pic]\" width=\"500px\" />";
?>

Link to comment
Share on other sites

  • 0

почему бы не сделать как-то так:


$(document).ready(function(){
var name_pic = $("#pic").attr("alt");
$("#black_side").click(
function () {
$.ajax({
type: "POST",
url: "add_choice.php", /*Здесь я обращаюсь ещё к одному php файлу, не думаю, что как-то влияет*/
data: "name="+name_pic,
success: function(data){ /* В случае успеха хочу выполнить out_pic(), которая и вызовет php файл*/
$("#pic").attr("src",data);
}
});
return false;
}
);
});

и в этом файле add_choice.php взять название картинки и вернуть и заменить на то что есть

Edited by Simon
Link to comment
Share on other sites

  • 0
по-моему load не предназначен для php.
1) JS не умеет открывать файлы с локальной машины, значит он берёт их с сервера

2) С точки зрения JS, файл, чем бы он не был сгенерирован, будет выглядеть как тексовый, поскольку JS получает его уже после обработки интерпретатором.

Включаем логику и перестаём писать чепуху.

Link to comment
Share on other sites

  • 0

Int, включай логику другим ребятам.

Я давно пробывал на локальной машине этот метод. У меня PHP не в какую не хотел открываться. Поэтому я и написал "По-моему" = "Кажется".

Link to comment
Share on other sites

  • 0
У меня PHP не в какую не хотел открываться.
С технической точки зрения нет никакой разницы между .txt и .php. Разница может быть только в заголовке с mime-типом, и если в этом кроется какое-то ограничение, то разработчики jquery ССЗБ
Link to comment
Share on other sites

  • 0
С технической точки зрения нет никакой разницы между .txt и .php.

Ну не совсем так, если мы работаем с responseText, то по-сути разницы нет, а вот если с responseXML тогда .txt не поможет.

Link to comment
Share on other sites

  • 0
У меня PHP не в какую не хотел открываться.
С технической точки зрения нет никакой разницы между .txt и .php. Разница может быть только в заголовке с mime-типом, и если в этом кроется какое-то ограничение, то разработчики jquery ССЗБ

я этого не знал, спасибо.

Link to comment
Share on other sites

  • 0
С технической точки зрения нет никакой разницы между .txt и .php.

Ну не совсем так, если мы работаем с responseText, то по-сути разницы нет, а вот если с responseXML тогда .txt не поможет.

А php чем поможет? txt так же может иметь любое содержимое.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy