Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #22940 > unrolled thread

php e ajax (elementare)

Started bycb <cb@ppt.io.it>
First post2021-10-18 09:23 +0200
Last post2021-10-24 12:40 +0100
Articles 10 — 4 participants

Back to article view | Back to it.comp.www.php


Contents

  php e ajax (elementare) cb <cb@ppt.io.it> - 2021-10-18 09:23 +0200
    Re: php e ajax (elementare) pippo <pippo@invalid.it> - 2021-10-19 12:25 +0200
      Re: php e ajax (elementare) cb <cb@ppt.io.it> - 2021-10-19 12:53 +0200
        Re: php e ajax (elementare) Leonardo Serni <lserni@gmail.com> - 2021-10-19 23:02 +0200
          Re: php e ajax (elementare) cb <cb@ppt.io.it> - 2021-10-20 08:09 +0200
            Re: php e ajax (elementare) Leonardo Serni <lserni@gmail.com> - 2021-10-20 08:58 +0200
        Re: php e ajax (elementare) pippo <pippo@invalid.it> - 2021-10-21 05:15 +0200
    Re: php e ajax (elementare) Alessandro Pellizzari <shuriken@amiran.it> - 2021-10-24 10:02 +0100
      Re: php e ajax (elementare) pippo <pippo@invalid.it> - 2021-10-24 13:00 +0200
        Re: php e ajax (elementare) Alessandro Pellizzari <shuriken@amiran.it> - 2021-10-24 12:40 +0100

#22940 — php e ajax (elementare)

Fromcb <cb@ppt.io.it>
Date2021-10-18 09:23 +0200
Subjectphp e ajax (elementare)
Message-ID<skj7co$13sf$1@gioia.aioe.org>
Chiedo pazienza a tutti, ma sto provando ad usare ajax.
Il mio primo tentativo di chiamare php da una pagina html e' qui sotto
(scopiazzando e modificando l'esempio da w3school e da altri tutorial 
sul web)
Il problema e' che quando clicco ... si ricarica la pagina e basta :-(
Evidentemente mi manca qualcosa di basilare.
Qualcuno ha la pazienza di indicarmelo ?
GRAZIE
----- index.html
<html>
<head></head>
<body>
<div>
    <span id="dataGiorno">
       <form action="">
          <input type='button' onclick='show()' value='cclick'>
       </form>
    </span>
</div>
<script>
function show() {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
       if (this.readyState == 4 && this.status == 200) {
          document.getElementById("dataGiorno").innerHTML = 
this.responseText;
       }
    };
    xhttp.open("GET", "lista.php, true);
    xmlhttp.send();
}
</script>
</body>
</html>
---- lista.php
<?php
echo "<h1>data del giorno</h1>";
?>

[toc] | [next] | [standalone]


#22941

Frompippo <pippo@invalid.it>
Date2021-10-19 12:25 +0200
Message-ID<skm6e8$1aim$1@gioia.aioe.org>
In reply to#22940
cb ha spiegato il 18/10/2021 :
> ----- index.html
> > <script>
> function show() {
>     var xmlhttp = new XMLHttpRequest();
>     xmlhttp.onreadystatechange = function() {
>        if (this.readyState == 4 && this.status == 200) {
>           document.getElementById("dataGiorno").innerHTML = 
> this.responseText;
>        }
>     };
>     xhttp.open("GET", "lista.php, true);
>     xmlhttp.send();
> }
> </script>
> </body>
> </html>
> ---- lista.php
> <?php
> echo "<h1>data del giorno</h1>";
> ?>

Ciao,

> xhttp.open("GET", "lista.php, true);

potrebbe essere qualcosa di proprio banale.

 lista.php   non ha gli apici di chiusura.

[toc] | [prev] | [next] | [standalone]


#22942

Fromcb <cb@ppt.io.it>
Date2021-10-19 12:53 +0200
Message-ID<skm83l$5fo$1@gioia.aioe.org>
In reply to#22941
 >> xhttp.open("GET", "lista.php, true);
 >potrebbe essere qualcosa di proprio banale.
 >lista.php   non ha gli apici di chiusura.
Hai perfettamente ragione,
purtroppo anche messi gli apici ... nulla e' cambiato :-(
*GRAZIE* 1000 x l'attenzione :-)
Riporto qui sotto l'ambaradan completo e corretto
sperando nella pieta' che qualcuno avesse voglia ... :-)
---- index.php
<html>
<head></head>
<body>
<form>
<input type='button' onclick='show()' value='cclick'>
</form>
<p>data: <span id="dataGiorno"></span></p>
<script>
function show() {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
       if (this.readyState == 4 && this.status == 200) {
          document.getElementById("dataGiorno").innerHTML = 
this.responseText;
       }
    };
    xhttp.open("GET", "lista.php", true);
    xmlhttp.send();
}
</script>
</body>
</html>
---- lista.php
<?php echo "<h1>data del giorno</h1>"; ?>

[toc] | [prev] | [next] | [standalone]


#22943

FromLeonardo Serni <lserni@gmail.com>
Date2021-10-19 23:02 +0200
Message-ID<6hcumg16be38s2r6fth816b1h7fmgn4kj1@L.Serni>
In reply to#22942
On Tue, 19 Oct 2021 12:53:41 +0200, cb <cb@ppt.io.it> wrote:

> >> xhttp.open("GET", "lista.php, true);
> >potrebbe essere qualcosa di proprio banale.
> >lista.php   non ha gli apici di chiusura.
>Hai perfettamente ragione,
>purtroppo anche messi gli apici ... nulla e' cambiato :-(

    xhttp.open("GET", "lista.php", true);
    ^^^

    xmlhttp.send();

Leonardo (ma la console degli errori non ti diceva nulla?)
-- 

"You all presumably know why" :-) :-(

[toc] | [prev] | [next] | [standalone]


#22944

Fromcb <cb@ppt.io.it>
Date2021-10-20 08:09 +0200
Message-ID<skobr0$7gc$1@gioia.aioe.org>
In reply to#22943
On 10/19/21 11:02 PM, Leonardo Serni wrote:
>      xhttp.open("GET", "lista.php", true);
>      ^^^
Quando uno e' cecato e' cecato: GRAZIE !
> Leonardo (ma la console degli errori non ti diceva nulla?)
No :-(

[toc] | [prev] | [next] | [standalone]


#22945

FromLeonardo Serni <lserni@gmail.com>
Date2021-10-20 08:58 +0200
Message-ID<9efvmgtlgjj6c1nlsi06a53phieopq53c2@L.Serni>
In reply to#22944
On Wed, 20 Oct 2021 08:09:36 +0200, cb <cb@ppt.io.it> wrote:

>On 10/19/21 11:02 PM, Leonardo Serni wrote:
>>      xhttp.open("GET", "lista.php", true);
>>      ^^^
>Quando uno e' cecato e' cecato: GRAZIE !
>> Leonardo (ma la console degli errori non ti diceva nulla?)
>No :-(

E allora questo è un altro problema da risolvere, perché doveva lamentarsi che
il metodo .open l'hai richiesto a non si sa bene chi.

C'hai la javascript console che ciurla, sentiammé.

Leonardo
-- 

"You all presumably know why" :-) :-(

[toc] | [prev] | [next] | [standalone]


#22946

Frompippo <pippo@invalid.it>
Date2021-10-21 05:15 +0200
Message-ID<skqm0f$154e$1@gioia.aioe.org>
In reply to#22942
cb ha usato la sua tastiera per scrivere :
>  >> xhttp.open("GET", "lista.php, true);
>  >potrebbe essere qualcosa di proprio banale.
>  >lista.php   non ha gli apici di chiusura.
> Hai perfettamente ragione,
> purtroppo anche messi gli apici ... nulla e' cambiato :-(

> ---- index.php

>     xhttp.open("GET", "lista.php", true);
>     xmlhttp.send();

>

Leonardo ha ragione sai.

Il tuo oggetto è xmlhttp   .

xhttp non è mai stato definito.

Non l'avevo neanche visto la volta scorsa.

[toc] | [prev] | [next] | [standalone]


#22947

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2021-10-24 10:02 +0100
Message-ID<itklp4Fatr6U1@mid.individual.net>
In reply to#22940
On 18/10/2021 08:23, cb wrote:

> Chiedo pazienza a tutti, ma sto provando ad usare ajax.
> Il mio primo tentativo di chiamare php da una pagina html e' qui sotto
> (scopiazzando e modificando l'esempio da w3school e da altri tutorial 
> sul web)

Ti consiglierei allora di lasciar perdere quel tutorial e quelli simili,
a meno che tu non deva supportare Internet Explorer per qualche motivo.

I browser si sono un po' evoluti rispetto a 10-15 anni fa.

Il modo "moderno" di fare quello che stai facendo è simile a questo:

<html>
<head></head>
<body>
  <div>
    <span id="dataGiorno">
       <form action="">
          <input type="button" id="btnData" value="click">
       </form>
    </span>
  </div>
  <script>
    document.getElementById('btnData')
      .addEventListener(
        'click',
        e => {
          e.preventDefault()
          fetch('lista.php')
            .then(res => res.text())
            .then(text => {
              document.getElementById('dataGiorno').innerHTML = text
            })
        },
      )
  </script>
</body>
</html>

[toc] | [prev] | [next] | [standalone]


#22948

Frompippo <pippo@invalid.it>
Date2021-10-24 13:00 +0200
Message-ID<sl3edj$1pr4$1@gioia.aioe.org>
In reply to#22947
Alessandro Pellizzari ha detto questo domenica :
> On 18/10/2021 08:23, cb wrote:
>
>> Chiedo pazienza a tutti, ma sto provando ad usare ajax.
>> Il mio primo tentativo di chiamare php da una pagina html e' qui sotto
>> (scopiazzando e modificando l'esempio da w3school e da altri tutorial 
>> sul web)
>
> Ti consiglierei allora di lasciar perdere quel tutorial e quelli simili,
> a meno che tu non deva supportare Internet Explorer per qualche motivo.
>
> I browser si sono un po' evoluti rispetto a 10-15 anni fa.
>
> Il modo "moderno" di fare quello che stai facendo è simile a questo:
>
> <html>
> <head></head>
> <body>
>   <div>
>     <span id="dataGiorno">
>        <form action="">
>           <input type="button" id="btnData" value="click">
>        </form>
>     </span>
>   </div>
>   <script>
>     document.getElementById('btnData')
>       .addEventListener(
>         'click',
>         e => {
>           e.preventDefault()
>           fetch('lista.php')
>             .then(res => res.text())
>             .then(text => {
>               document.getElementById('dataGiorno').innerHTML = text
>             })
>         },
>       )
>   </script>
> </body>
> </html>
>

Ehilà!
Un frammento così era proprio quello che cercavo per *fetch*.
Niente prove da fare, tutto già sistemato. Non lo testo neanche, 
suppongo che funzioni senza problemi.

Era un po' che non ti vedevo. Grazie tante.

Se non erro una chiamata con fetch non è l'esatto equivalente di una 
chiama ajax "tradizionale"

Ciao.

[toc] | [prev] | [next] | [standalone]


#22949

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2021-10-24 12:40 +0100
Message-ID<itkv24Fclo6U1@mid.individual.net>
In reply to#22948
On 24/10/2021 12:00, pippo wrote:

> Ehilà!
> Un frammento così era proprio quello che cercavo per *fetch*.

:)

> Niente prove da fare, tutto già sistemato. Non lo testo neanche, 
> suppongo che funzioni senza problemi.
> 
> Era un po' che non ti vedevo. Grazie tante.

Di nulla :)

> Se non erro una chiamata con fetch non è l'esatto equivalente di una 
> chiama ajax "tradizionale"

`fetch` astrae tutto quello che succede con XMLHttpRequest e usa
promises invece di callbacks dirette. Inoltre gestisce gli errori
(usando `then` per il good path e `catch` per gli errori) e permette di
costruire una request più complessa.

Nell'esempio ho usato una stringa come request, ma si può passare un
oggetto Request con altri parametri (per passare header, usare metodi
diversi da GET, gestire CORS, etc.)

È (secondo me) molto più leggibile, oltre a rendere molto più semplice
la gestione dei casi più complessi che con XHR richiedono un sacco di
codice scritto apposta.

Bye.

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.www.php


csiph-web