Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX]Wyjątek złapany
Forum PHP.pl > Forum > Przedszkole
Misiur66
Otóż mam mały błąd - po użyciu tych kodów:
Kod
var http_request = false;
function makeRequest(url) {
        http_request = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                // Przeczytaj o tym wierszu poniżej
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Poddaję się :( Nie mogę stworzyć instancji obiektu XMLHTTP');
            return false;
        }
        http_request.onreadystatechange = function() { alertContents(http_request); };
        http_request.open('GET', url, true);
        http_request.send(null);
}
function alertContents(http_request) {

        try {
            if (http_request.readyState == 4) {
                if (http_request.status == 200) {
                    var xmldoc = http_request.responseXML;
                    var root_node = xmldoc.getElementsByTagName('start').item(0);
                    if(root_node.firstChild.data == 'jan'){
                        alert('Nice name!');
                    }
                    else if(root_node.firstChild.data == 'niejan'){
                        alert('Szkoda...');
                    }
                    else{
                        alert('Nie działa!');
                    }

                } else {
                    alert('Wystąpił problem z tym żądaniem.');
                }
            }
        }
        catch( e ) {
            alert('Złapany wyjątek: ' + e.description);
        }

    }
function test(){
    var guzik = document.getElementById('guzik');
    guzik.onclick = sprawdz;
    return false;
}
function sprawdz(){
    var zapytanie = makeRequest('http://localhost/Marcin/Projekt%20Firmy/php/komentarze.php');
}
window.onload = test;

komentarze.php:
Kod
<?php
    //Moduł dodawania komntarzy;> Ajaxowo
    $bylexml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><start></start>');
    $imie = $_REQUEST('imie');
    if($imie == 'Jan'){
        $jan = $bylexml -> addChild('jan');
    }
    else if($imie != 'Jan'){
        $niejan = $bylexml -> addChild('niejan');
    }
?>

i formularzyk
Kod
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Test</title>
        <script src='test.js' language='JavaScript'></script>
    </head>
    <body>
        <form action='komentarze.php' method='$_GET'>
            <input type='text' name="imie" />
            <input type='button' name='guzik' id="guzik" />
        </form>
    </body>
</html>


I wyrzuca mi:
Cytat
Złapany wyjątek: undefined
simple programmer
A czy nie powinno być
Kod
alert('Złapany wyjątek: ' + e.responseText);

?
Misiur66
Nie w tym wypadku party.gif W IE pisze że "wymagany jest obiekt", a po zmianie na reponseText undefined. Problem nadal nierozwiązany...
arecki
Błąd się nie pokazuje bo nie w samym Ajaxie jest.
Zmien plik z komentarzami na:

  1. <?php
  2. //Moduł dodawania komntarzy;> Ajaxowo
  3. $bylexml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><start></start>');
  4. // $_REQUEST to tablica wiec elementy dostajemy z kwadratowymi nawiasami
  5. $imie = $_REQUEST['imie'];
  6. if($imie == 'Jan'){
  7. $jan = $bylexml -> addChild('jan');
  8. }
  9. else if($imie != 'Jan'){
  10. $niejan = $bylexml -> addChild('niejan');
  11. }
  12. // no i wypadałoby coś zwrócić przeglądarce jub AJAXowi ;P
  13. echo $bylexml->saveXML();
  14.  
  15. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.