JQuery load () внешнего PHP, изображения не работают

0

Надеюсь, этот вопрос не задавался раньше, я сделал все возможное для поиска.

У меня есть сайт со ссылками, указывающими на php файлы в подпапках, например:

index.php/проекты/nameofproject/project.php

В случае без javascript пользователь будет просто перенаправлен на project.php и сможет видеть содержимое.

Файл project.php отображает содержимое двух файлов txt, а также всех изображений, присутствующих в папке nameofproject, например (я понимаю, что обработка переменных может быть не очень удачной, но я совершенно новичок в этом):

<?php
    $imagesFile = glob("*.jpg");
    $headingFile = "heading.txt";
    $ph = fopen($headingFile, 'r');
    $heading = fread($ph, filesize($headingFile));
    fclose($ph);
    $infoFile = "info.txt";
    $ih = fopen($infoFile, 'r');
    $info = fread($ih, filesize($infoFile));
    fclose($ih);

    echo '
        <h2>'.$heading.'</h2>
        <p>'.$info.'</p>
    ';

    for ($i=0; $i<count($imagesFile); $i++)
    {
        $imageName = $imagesFile[$i];
        echo '
            <img src="'.$imageName.'">
        ';
    }
?>

Это работает до сих пор, но когда я пытаюсь загрузить project.php в div на странице index.php, изображения отображаются как неработающие ссылки. Работает код, связанный с текстовыми файлами.

Код JQuery (позже я буду более конкретным, а не нацелен на все ссылки):

$("a").click(function(){
    event.preventDefault()
    var href = $(this).attr('href');
    $(".details").empty();
    $(".details").load(href);
});

Проблема заключается в том, что файл php (project.php) пытается загрузить изображения, как если бы они находились в той же папке, что и этот файл, который работает, когда это так (без javascript), но не тогда, когда я использую JQuery для загрузки() project.php на index.php

Как заставить изображения работать при загрузке project.php на странице index.php?

  • 1
    Используйте абсолютные URL-адреса с изображениями или установите базовый путь.
Теги:
external

1 ответ

0
Лучший ответ

Вы хотите установить абсолютные пути к файлу, чтобы остановить просмотр браузера с того места, где они были открыты. Самый простой способ - добавить / который будет ссылаться на корень вашей файловой системы. Это будет зависеть от того, как вы настроены.

Поэтому обновите $imagesFile = glob("*.jpg"); где хранятся изображения:

  $imagesFile = glob("/pathtoimages/*.jpg");
  • 0
    Так как каталог на один шаг вверх от изображений может отличаться, я попробовал это: $projectName = "/projects/" . basename(dirname($_SERVER['PHP_SELF'])) . "/"; и echo ' <img src="'.$projectName.''.$imageName.'"> Но это не работает, даже если я смотрю на результат, путь выглядит правильным.
  • 0
    : O безумие :) Можете ли вы перейти к изображению, введя URL-адрес вручную в браузере? Если так, вставьте это сюда вместе с тем, что выводится с вашим php
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню