Извлекает файл с AJAX, не может читать PHP - PullRequest
0 голосов
/ 16 февраля 2011

Я проверил предложения, появившиеся до публикации, надеюсь, я ничего не пропустил сейчас.

У меня есть фрагмент кода, который я использую для получения txt-файлов для моего сайта, но теперь мне нужно переделать код, чтобы он получал как txt, так и php-файлы, но он просто не будет читать php-скрипт. Я немного боюсь испортить код в данный момент, поэтому я иду по безопасной стороне дороги и спрашиваю здесь, знает ли кто-нибудь хорошее дополнение к коду. Это довольно смущает, что у меня все еще есть коды для IE 5 и 6, так что если вы хотите удалить это одновременно, продолжайте. Я не буду ненавидеть тебя за это, я обещаю.

ОБНОВЛЕНИЕ:
У меня есть четыре файла:
html - вызов .js-файла с помощью ajax-скрипта.
js - со всеми моими JavaScript-кодами (и симуляциями).
PHP - Это содержит ... Ну, вы поняли.

Мне нужно как-то вызвать php-код, как я называю свои txt-файлы, но, конечно, php работает как надо. Я очень новичок в AJAX, так что я не смею сейчас возиться с этим кодом, но я подумал, что смог бы добавить какой-то оператор if, который вызывает php-файл так, как он предназначен для быть.
Но я понятия не имею, что это может быть за код и где его разместить, чтобы все работало соответствующим образом. Конечно, любая помощь будет оценена и зачислена в код.

Вот AJAX-код, содержащийся в .js-файле:

/*Load the link.*/
function loadXMLDoc(url)
{
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        document.getElementById("leftCol").innerHTML=xmlhttp.responseText;
    }
    }
    xmlhttp.open("GET",url,true);
    xmlhttp.send();
}
/*Highly unnecessary, but I wanted to see if it worked and it looks better on the .html-page.*/
function get_link(url)
{
  loadXMLDoc(url);
}

Ответы [ 2 ]

3 голосов
/ 17 февраля 2011

Как сказал вышеупомянутый комментатор, для таких целей лучше всего использовать сторонний инструмент - если только по какой-либо другой причине, кроме как для значительного повышения кросс-браузерной совместимости.

если вы будете использовать jQuery , код будет сокращен до.

function get_link(url)
{
    $.ajax({url: url, success: success:function(result){
            //the code / resulting string will be in the result variable.
    }});
}

jQuery CDN Размещено: http://code.jquery.com/jquery-1.5.min.js

Позвольте мне спросить это ... если вы измените свой код на

function get_link(url)
{
    window.location=url;
}

Ваш веб-браузер успешно переходит на страницу, которую вы пытаетесь получить через AJAX? Если нет, то, скорее всего, проблема с вашим синтаксисом PHP.

1 голос
/ 16 февраля 2011

it just won't read the php-script

Это довольно расплывчатое утверждение, но вот несколько советов, которые могут быть решением:

PHP-файл интерпретируется на сервере, поэтому при выполненииAjax-вызов этой страницы, который вы получаете на стороне клиента, - это результат этого php-скрипта, а не его content .

Вы присваиваете результатзапроса непосредственно в HTML, если результат содержит данные, которые ничего не отображают, вы ничего не увидите.Например, содержимое <script>Text here bla bla bla</script> просто ничего не будет отображать.

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

Убедитесь, что ваш путь к вашей странице PHP правильный.Чтобы определить, не содержит ли файл код ошибки 404 или любой другой код ошибки, вы можете использовать это:

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
            document.getElementById("leftCol").innerHTML = xmlhttp.responseText;
        } else {
            alert("Error " + xmlhttp.status);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...