Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

php e ajax (elementare)

18 views
Skip to first unread message

cb

unread,
Oct 18, 2021, 3:23:06 AM10/18/21
to
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>";
?>

pippo

unread,
Oct 19, 2021, 6:25:14 AM10/19/21
to
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.

cb

unread,
Oct 19, 2021, 6:53:43 AM10/19/21
to
>> 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);

Leonardo Serni

unread,
Oct 19, 2021, 5:02:10 PM10/19/21
to
On Tue, 19 Oct 2021 12:53:41 +0200, cb <c...@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" :-) :-(

cb

unread,
Oct 20, 2021, 2:09:38 AM10/20/21
to
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 :-(

Leonardo Serni

unread,
Oct 20, 2021, 2:58:17 AM10/20/21
to
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

pippo

unread,
Oct 20, 2021, 11:15:31 PM10/20/21
to
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.

Alessandro Pellizzari

unread,
Oct 24, 2021, 5:02:31 AM10/24/21
to
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>

pippo

unread,
Oct 24, 2021, 7:01:44 AM10/24/21
to
Alessandro Pellizzari ha detto questo domenica :
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.

Alessandro Pellizzari

unread,
Oct 24, 2021, 7:40:56 AM10/24/21
to
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.

0 new messages