XMLHTTP voor PHP

Door , 21 jaar geleden, 2.868x bekeken

Sorry dit script heb ik hier geplaatst omdat ik veel voor mijn medemensen overhad echter het blijkt niet goed thuis te horen op deze site aldus de beheerder daarom verwijderd ik het bij deze. Google en zij zult vinden.

Gesponsorde koppelingen

PHP script bestanden

  1. xmlhttp-voor-php

 

Er zijn 10 reacties op 'Xmlhttp voor php'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Ki ma
ki ma
21 jaar geleden
 
0 +1 -0 -1
jij bent er vroeg bij vandaag ;)
Niek s
niek s
21 jaar geleden
 
0 +1 -0 -1
Leuk ding :) Komt goed van pas denk ik :D
Jelmer -
Jelmer -
21 jaar geleden
 
0 +1 -0 -1
Misschien een idee om in plaats van eval() gebruik te maken van call_user_func(). Dan kan ik bijvoorbeeld een bestaande functie meegeven, een class method (array($object, $method)) of een die net gemaakt is door midel van create_function(). En je geeft dan $this als 2e parameter mee. Dat is nog net even iets closer bij Javascript dan dit :)

142:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    eval($this->onreadystatechange); // Some one ideas?

wordt dan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    call_user_func($this->onreadystatechange, $this); // Some one ideas?


En meegeven gaat dan zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    $objAjax
= new xmlhttp;
    $objAjax->open("GET","http://localhost/xmlhttp/index.php?excusses=XQ6");
    $objAjax->onreadystatechange = 'callback';
    $objAjax->send();
    
    function
callback($transfer)
    {

        if($transfer->readyState == 4) {
            echo $transfer->responseText;
        }
    }

?>


Let trouwens wel op voor diegenen die Javascript gewend zijn: deze functie is dus niet asynchroon zoals in Javascript.


21 jaar geleden
 
0 +1 -0 -1
Kijk Jelmer dat bedoelde ik. Script nu zo aangepast dat er wordt gekeken of er een functie wordt meegeven zo wel dan wordt er een call_user_func() uitgevoerd zo nee dan zal de eval gebruikt worden.

@kima viel wel mee tot zo'n twee uur doorgegaan alleen toen sprong die klok opeens een uur vooruit ;-)
Joeri
Joeri
21 jaar geleden
 
0 +1 -0 -1
Zeer mooi en handig script, ben steeds meer bezig met stukjes ajax te gebruiken en dit lijkt me zeer handig,

Alvast bedankt om het te Delen Webmakerij
Klaasjan Boven
Klaasjan Boven
21 jaar geleden
 
0 +1 -0 -1
@Webmakerij ziet er goed uit. Ik moet eerlijkheidshalve bekennen dat ik het script niet helemaal snap ( ben nog niet zo OO) maar het is igg zeer netjes gescript.
Compliment
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Wat heeft dit met Ajax te maken? En wat heeft het met XML te maken? Het HTTP en PHP gedeelte snap ik wel denk ik...

Maar wat is precies het nut? Denk je dat je dit (veel) gaat gebruiken?

Vind de readystate member wel leuk, maar beetje wanna-be, denk je niet? Hoe kan je nou iets met het object doen tussen 1 en 4?? Zoals Jelmer al zei, het is niet asynchroon, dus je set readystate een paar keer en daarna kan je pas weer iets... Waarom readystate? Waarom er op controleren? Voegt 0 toe.

Edit:
Voor GET vars doet file_get_contents() hetzelfde (zonder de headers)


Edit:
Wat gebeurt er trouwens als er een http redirect header (Location) wordt terug gestuurd? Niks? Hoe zit dat in Ajax en .NET?


21 jaar geleden
 
0 +1 -0 -1
@t vercetti
1) De techniek die je in JavaScript gebruikt heet XMLHTTP(Request)
2) Het model van de code is hetzelfde als die van de JavaScript versie
3) Het is inderdaad niet Asynchroom, volgens mij is dit ook helemaal niet mogelijk onder PHP
4) Het nut is dat als je pagina's hebt die opgebouwd zijn uit losse 'onderdeeltjes' die je ververst met JS op de AJAX manier je ze in het begin kan inladen [het inladen hoeft dus de eerste keer niet door JavaScript te gebeuren.
5) Voor GET misschien wel, voor POST niet
6) Het Ajax object/component in de .Net versie doet min of meer hetzelfde
7) Bij een redirect header zou ik het niet weten. Probeer het uit zou ik zeggen. Maar waarom zou je een niet fysiekbestaande pagina gaan openen.

Pas het aan aan je eigen wensen zou ik zeggen of laat het links liggen
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
In javascript kan je niet anders. Als je een klein stukje pagina wil verversen, moet je een nieuwe pagina maken. Wat er op komt beheer je met parameters.
In PHP kan je echter in hetzelfde request nog bepalen wat er geprint en gedaan wordt. Het is dus zonde om nieuwe requests te maken, vooral naar dezelfde server toe! In javascript kan het niet naar andere servers, in PHP zou het zonde zijn.
Niet om je af te vallen ofzo, maar het zit niet voor niets niet standaard in PHP en wel in Javascript...

Dit kan trouwens iets korter:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
            $output = explode("\r\n" . "\r\n", $output);
            $this->headers = $output[0];
            unset($output[0]);
            $this->responsetext = implode("",$output);
Bijvoorbeeld zo:
            $output = explode("\r\n" . "\r\n", $output, 2);
            $this->headers = $output[0];
            $this->responsetext = isset($output[1]) ? $output[1] : "";
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


21 jaar geleden
 
0 +1 -0 -1
Vraag je af of het bij een gastenboek wel nodig is. Lijkt mij niet nodig.
Volgens mij gaat je vraag niet over dit script maar is het meer een vraag in het algemeen... gelieve je vraag overnieuw te stellen in het forum.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. xmlhttp-voor-php

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.