2014-10-23 5 views
0

Я новичок. Проблема, с которой я имею дело, вероятно, очень просто решить;) Я работаю на веб-странице, где текстовый контент загружается из внешних html-файлов в div. Это делается, когда пользователь нажимает на элемент меню.Загрузите содержимое html-файла в div

Это мой код HTML:

<html> 
<head> 
<link rel="stylesheet" type="text/css" href="css/menu.css"> 
<script type="text/javascript" src="js/js.js"></script> 

</head> 
<body> 
      <div> 
         <ul>  
          <li><a id="teachers" href="#" name="teachers" onclick="getdata()"> 
          Teachers 
          </li> 
         </ul> 
      </div> 

      <div id="page" name="" > 
      bla bla bla ... 
      </div> 

</body> 
</html> 

И это мой код Ajax:

var _xhr; 

function getdata(){ 

    _xhr= new XMLHttpRequest(); 
    _xhr.onreadystatechange=callback; 
    _xhr.open("POST", "teachers.html", true); 
    _xhr.send(); 

    function callback(){ 
     var _target = document.getElementById("page"); 
     _target.innerHTML=_xhr.responseText; 
    } 

} 

Я хотел бы загрузить HTML-файл (teachers.html) в DIV (ID = «страница»), когда я нажимаю на ссылку (Учителя)

Пожалуйста, кто-нибудь может мне помочь.

Заранее благодарен.

+0

Javascript JSP или PHP. Google для него – Klapsa2503

+0

Ваш код выглядит так, как будто он уже делает это. В чем проблема? Посмотрите на инструменты разработчика вашего браузера. Посмотрите на консоль JavaScript. Сообщает ли он о каких-либо ошибках? Посмотрите вкладку «Сеть». Выполняется ли запрос? Получает ответ? Они содержат данные, которые вы ожидаете? – Quentin

+0

Что произошло при запуске кода? Вы объявили функцию «обратного вызова» внутри функции getdata(). Что произойдет, если вы переместите функцию обратного вызова до _xhr = new XMLHttpRequest() ;? –

ответ

0

Попробуйте изменить POST, чтобы ПОЛУЧИТЬ и посмотреть, работает ли это.

+0

Это не работает в любом случае спасибо за ваш ответ – abderrahim

+0

все html-файлы в том же каталоге? – Oliverb

+0

yes in the same – abderrahim

0

для этого случая Я рекомендую пользователю функцию загрузки jQuery. его легко использовать и соответствовать вашим потребностям. Вы можете найти более подробную информацию по следующей ссылке: http://api.jquery.com/load/

+0

Да, но я хотел бы использовать AJAX – abderrahim

+0

jQuery его структуру Javascript и AJAX. –

0

Его довольно сложно узнать, не сообщите нам, что произошло. I've выяснить (возможно) проблема

Попробуйте изменить свой код

function getdata(){ 

    function callback(){ 
     var _target = document.getElementById("page"); 
     _target.innerHTML=_xhr.responseText; 
    } 


    _xhr= new XMLHttpRequest(); 
    _xhr.onreadystatechange=callback; 
    _xhr.open("POST", "teachers.html", true); 
    _xhr.send(); 
} 
+0

та же проблема, моя проблема в моем ответеТекст пуст – abderrahim

+0

Какой браузер вы используете? В chrome вы можете открыть «инструменты разработчика» (ctrl + shif + i) и открыть вкладку «сеть». Итак, запустите свой код еще раз и посмотрите, загружает ли браузер этот файл. Просто нажмите на файл и выберите вкладку «Ответ». Взгляните и на код состояния. Он должен получить 200. –

+0

Просьба взглянуть на эту ошибку: XMLHttpRequest не может загрузить файл: /// F: /Projet/teachers.html. Запросы на кросс-начало поддерживаются только для схем протокола: http, data, chrome-extension, https, chrome-extension-resource. – abderrahim

0

Вы пробовали чего УАК _xhr; внутри функции?

я попробовал ниже .. он работал

function getdata(){ 
       var xmlhttp; 
       xmlhttp=new XMLHttpRequest(); 
       xmlhttp.open("get","techers.html",false); 
       xmlhttp.send(); 
       document.getElementById("page").innerHTML=xmlhttp.responseText; 

      } 
+0

нет, это не проблема, в любом случае спасибо за ваш ответ – abderrahim

0

Как об использовании AJAX вызова?

$.get("ajax/test.html", function(data) { 
    $(".result").html(data); 
    alert("Load was performed."); 
}); 

Документация: http://api.jquery.com/jquery.get/

+0

да, но я бы хотел использовать AJAX – abderrahim

+0

Это AJAX, прочтите документацию. – BerendvRijn

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