За последние 24 часа нас посетили 16734 программиста и 1694 робота. Сейчас ищут 868 программистов ...

Не могу вызвать в PHP, в категориях js.

Тема в разделе "PHP для новичков", создана пользователем zasadadada, 20 май 2013.

  1. zasadadada

    zasadadada Новичок

    С нами с:
    11 май 2013
    Сообщения:
    27
    Симпатии:
    0
    Подскажите. С главной страницы сайта вызываю класс роутинга из подключённого файла, если роутинг показывает, что мы на главной странице index.php то при подключении скриптов js они работают. А если мы в директории то работает только php.. Пример
    --------------idnex.php------------ Больше на index ни чгео нету, всё остальное в classroute
    require_once "classroute.php";
    $route = new route();
    $route->_uri();

    --------------classroute.php------------

    public function index_php_solo() //Если прошёл за прос на просмотр index.php
    {
    $site = new csite();
    $site->addHeader("model/model_index.php", "usermenu.php");
    $site->render();

    ?><script type="text/javascript" src="/js/view/usermenu.js"></script><?
    ?><script type="text/javascript" src="/js/view/login.js"></script><?

    }
    То есть из classroute.php вызвали класс который формирует страницу index.php. Вот так всё работает!
    А если тоже самое вызвать только при получении категории

    site.ru/news/2

    public function opencategorybyid($categoryname, $categoryid) //Если прошёл за прос на просмотр id
    {

    $site = new csite();
    $site->addHeader("model/model_index.php", "usermenu.php");
    $site->render();

    ?><script type="text/javascript" src="/js/view/usermenu.js"></script><?
    ?><script type="text/javascript" src="/js/view/login.js"></script><?

    }
    Вот так не работает js, то есть js работает только на index.php, если мы в категории, то не работает.
    Вообщем как быть... думал из за файла .htaccess пример .htaccess на index.php

    Options +FollowSymlinks
    RewriteEngine On
    RewriteRule ^$ /index.php [R=301,L]

    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule . /index.php [QSA,L]

    DirectoryIndex index.php
    Options All -Indexes

    И пример .htaccess в каталоге js
    Options -Indexes (вообще то он на половину пуст)

    Код вырезал кусками... то есть public function index_php_solo() и public function opencategorybyid работают корректно. PHP мне тут и не нужно, в плане заполнения станицы, это тест.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    смотри консоль JS в браузере. может чего необычного пишет?
     
  3. zasadadada

    zasadadada Новичок

    С нами с:
    11 май 2013
    Сообщения:
    27
    Симпатии:
    0
    Вот класс страницы которая открывается при проходе на site.ru/news/2
    class model {


    public function model_index_php() {

    ?><!doctype html>
    <html>
    <head>
    <script type="text/javascript"src="js/jquery-2.0.0.js"></script>
    <script type="text/javascript"src="js/ajaxmethod.js"></script>
    <script type="text/javascript"src="js/popupregistration.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <link href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css"/>
    <link rel="stylesheet" type="text/css" href="/css/style.css">

    </head>
    <body id="body">
    <div class="maindiv" id="maindiv">
    <div class="headermaindiv" id="headermaindiv">
    </div>
    <div class="bodymaindiv" id="bodymaindiv">
    <div class="rightpanel" id="rightpanel">
    <div id="login" style="">

    </div>
    <div id="usermenu" style="">

    </div>
    </div>
    <div id="edituserindexdiv" style="">
    </div>
    <div id="newsindexdiv" style="float:left">
    </div>
    </div>
    </div>
    </body>
    </html><?
    }
    }

    прохожу по ссылке, страница загружается успешно, смотрю код страницы, все хорошо. Форма страницы верна. Но js ругается, вот ошибки...
    [​IMG]

    Что то не то он делает с js. Хотя в коде браузера всё верно.
    Error 404, это сообщение которое прописано в логике PHP мною, что оно тут делает? Не понятно, логика проходит успешно.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    ну вот и объяснение! страница не может получить js, потому что ты используешь относительные пути. пока ты в корне - все нормально. ушел из корня - js ищется в неправильном месте
    Код (Text):
    1. <script type="text/javascript"src="js/jquery-2.0.0.js"></script>
    а надо
    Код (Text):
    1. <script type="text/javascript"src="/js/jquery-2.0.0.js"></script>
    ну и во всех аналогичных местах также

    Добавлено спустя 3 минуты 5 секунд:
    а дело в том, что файл js не найден, потому что путь указан некорректно. в итоге mod_rewrite передает управление на твой index.php.
    и получается что вместо файла с javascript у тебя подключается страница с твоим запрограммированным сообщением об ошибке
     
  5. zasadadada

    zasadadada Новичок

    С нами с:
    11 май 2013
    Сообщения:
    27
    Симпатии:
    0
    artoodetoo спасибо вам большое, голову ломал, ни когда бы не подумал, что из за '/' не поймёт путь. Теперь всё работает!
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    незачто. заведи привычку заглядывать в логи апача. там видно к каким адресам были обращения!
    чуть что пошло не по плану -- сразу лезь в логи ;)