View Full Version : [PHP - JAVASCRIPT]-Misto
stevenen
08-11-2007, 14:09
Ciao a tutti...realizzando un sito web in php mi sono trovato di fronte all'esigenza di visualizzare dei dati contenuti in un db a seconda del click dell'utente in un determinato link...Volendo fare tutto senza ricaricare la pagina ho implementato questa soluzione:
Parte js
<script>
function stampa(x){
obj=document.getElementById("area")
if (x == 1)
obj.hinnerHTML = "<?php
//eseguo query 1
//echo dati resultset
?>";
if (x == 2)
obj.hinnerHTML = "<?php
//eseguo query 2
//echo dati resultset
?>";
//ecc..
}
</script>
parte HTML
<a href="#" onCLick="stampa(1);">Documenti inviati</a><br>
<br>
<a href="#" onCLick="stampa(2);">Documenti Ricevuti</a><br>
//ecc..
Il tutto funziona perfettamente, però colui che mi ha demandato di realizzare questo sito mi ha "deriso" per come ho intrecciato un linguaggio server side con uno client side...cosa ne pensate??è proprio un orrore?
tomminno
08-11-2007, 14:49
Ciao a tutti...realizzando un sito web in php mi sono trovato di fronte all'esigenza di visualizzare dei dati contenuti in un db a seconda del click dell'utente in un determinato link...Volendo fare tutto senza ricaricare la pagina ho implementato questa soluzione:
Parte js
<script>
function stampa(x){
obj=document.getElementById("area")
if (x == 1)
obj.hinnerHTML = "<?php
//eseguo query 1
//echo dati resultset
?>";
if (x == 2)
obj.hinnerHTML = "<?php
//eseguo query 2
//echo dati resultset
?>";
//ecc..
}
</script>
parte HTML
<a href="#" onCLick="stampa(1);">Documenti inviati</a><br>
<br>
<a href="#" onCLick="stampa(2);">Documenti Ricevuti</a><br>
//ecc..
Il tutto funziona perfettamente, però colui che mi ha demandato di realizzare questo sito mi ha "deriso" per come ho intrecciato un linguaggio server side con uno client side...cosa ne pensate??è proprio un orrore?
Proprio bello non è in quanto precarichi sulla pagina il risultato di entrambe le query. Per queste cose Ajax è la soluzione. Trovi in giro centinaia di script e documentazione a riguardo.
stevenen
08-11-2007, 19:42
Proprio bello non è in quanto precarichi sulla pagina il risultato di entrambe le query. Per queste cose Ajax è la soluzione. Trovi in giro centinaia di script e documentazione a riguardo.
Si certo ovviamente ajax è la soluzione a tutto...però dico oltre al fatto dello spreco di risorse, concettualmente non è sbagliato?nel senso...il tipo mi ha fatto una pappardella incredibile dicendo letteralmente queste "schifezze" non si fanno
:ciapet:
Potrebbe anche andare bene giusto per fare un paio di cose come nel tuo esempio, ma non è una soluzione.
In poche porole si è una "schifezza" :D
tomminno
08-11-2007, 23:07
Si certo ovviamente ajax è la soluzione a tutto...però dico oltre al fatto dello spreco di risorse, concettualmente non è sbagliato?nel senso...il tipo mi ha fatto una pappardella incredibile dicendo letteralmente queste "schifezze" non si fanno
:ciapet:
Se una cosa funziona non è concettualmente sbagliata (se lo fosse non funzionerebbe), solo che c'è modo e modo di risolvere un problema e diciamo che la tua soluzione è molto, ma molto lontana da quella ottima.
Secondo me è una soluzione accettabile...poteva essere esposta meglio, magari non usando php così inline, ma facendo delle echo da php del codice javascript, ma secondo me non si poteva fare altro ;)
tomminno
09-11-2007, 13:17
Secondo me è una soluzione accettabile...poteva essere esposta meglio, magari non usando php così inline, ma facendo delle echo da php del codice javascript, ma secondo me non si poteva fare altro ;)
Secondo me è una cosa che potrebbe andare bene per un esame universitario (anche se sono convinto che in un esame serio te lo farebbero riscrivere) o per un sito personale, per un lavoro professionale sinceramente no.
Con ajax prendendo uno qualunque degli script che si trovano in giro il sito diventerebbe più o meno così:
Da qualche parte nei javascript
function XmlHttpHandler()
{
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
e = document.getElementById("area");
if (e != null)
e.innerHTML = xmlHttp.responseText;
}
}
function SendPostData(pagina, data)
{
xmlHttp= CreateXmlHttpReq();
xmlHttp.open("POST", pagina, true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
myRequest.setRequestHeader("Content-length", data.length);
myRequest.setRequestHeader("Connection", "close");
myRequest.send(data);
}
-------------------
<a href="#" onclick="SendPostData('pagina.php','stampa1')">Documenti inviati</a>
<a href="#" onCLick="SendPostData('pagina.php','stampa2')">Documenti Ricevuti</a>
<div id="area">
<!-- Qui verranno inseriti i contenuti richiesti-->
</div>
Tutto scritto di getto andrebbero fatti un pò più di controlli.
stevenen
09-11-2007, 16:07
Potrebbe anche andare bene giusto per fare un paio di cose come nel tuo esempio, ma non è una soluzione.
In poche porole si è una "schifezza" :D
disdetta:cry:
Se una cosa funziona non è concettualmente sbagliata (se lo fosse non funzionerebbe), solo che c'è modo e modo di risolvere un problema e diciamo che la tua soluzione è molto, ma molto lontana da quella ottima.
si ovviamente molto lontana...però l'importante è che non sia proprio "improponibile"..soprattutto non sapendo usare ajax
Secondo me è una cosa che potrebbe andare bene per un esame universitario (anche se sono convinto che in un esame serio te lo farebbero riscrivere) o per un sito personale, per un lavoro professionale sinceramente no.
Con ajax prendendo uno qualunque degli script che si trovano in giro il sito diventerebbe più o meno così:
Da qualche parte nei javascript
function XmlHttpHandler()
{
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
e = document.getElementById("area");
if (e != null)
e.innerHTML = xmlHttp.responseText;
}
}
function SendPostData(pagina, data)
{
xmlHttp= CreateXmlHttpReq();
xmlHttp.open("POST", pagina, true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
myRequest.setRequestHeader("Content-length", data.length);
myRequest.setRequestHeader("Connection", "close");
myRequest.send(data);
}
-------------------
<a href="#" onclick="SendPostData('pagina.php','stampa1')">Documenti inviati</a>
<a href="#" onCLick="SendPostData('pagina.php','stampa2')">Documenti Ricevuti</a>
<div id="area">
<!-- Qui verranno inseriti i contenuti richiesti-->
</div>
Tutto scritto di getto andrebbero fatti un pò più di controlli.
è un sito pseudo-professionale...cmq grazie per il codice vedo un pò cosa ci capisco anche tramite mr google
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.