|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 184
|
interrogare db con javascript
Ciao a tutti. io ho in un file html una select di questo tipo:
<select name=choice size=1 onchange=go()> <option value=uno>One</option> <option value=due>Two</option> <option value=tre>Three</option> </select> e una funzione js function go(){ var choice = document.getElementById("choice").options[document.getElementById("choice").selectedIndex].value; alert("choice = " + choice); } la risposta viene restituita corretta. A questo punto ho bisogno di usare questa variabile per interrogare il database. Come posso realizzare questo passaggio nella funzione js? Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
usare un linguaggio client side per interrogare un db è un po' improponibile, devi passare a qualche script server side che possa interagire appunto con il db
'iao |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
Se vuoi farlo lato client con tecnologia Java, puoi utilizzare tranquillamente Applet e jdbc; con il solo javascript la vedo dura, a meno che non ti appoggi ad un linguaggio di scripting o qualche altro accrocchio, come da post di Orph3n
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Semplice usi javascript inseme all'oggetto xmlhttp, e il tutto prende il nome di AJAX ( alla gente piace cambiare nome alle cose per farle sembrare più complicate e affiscinanti...).
Ecco un esempio di una richiesta http ad uno script php, utilizzando il metodo GET(ma si può fare anche con POST) Codice:
var myRequest=null;
function CreateXmlHttpObject(myFunction){
var xmlhttpObject=null;
try{
xmlhttpObject=new XMLHttpRequest();
}catch(e){
try{
xmlhttpObject=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
xmlhttpObject=new ActiveXObject("Microsoft.XMLHTTP");
}
}
xmlhttpObject.onreadystatechange=myFunction;
return xmlhttpObject;
}
function httpReturnResponse(){
if(myRequest.readyState==4&&myRequest.status==200){
var readText=myRequest.responseText;
}
function httpRequest(){
myRequest=CreateXmlHttpObject(httpReturnResponse);
myRequest.open("GET",php_link+"?variabile="+variabile,true);
myRequest.send(null);
}
Dopo tornerà indietro il codice della pagina web chiamata, quindi torna indietro tutto quello di cui nello script php ne fai l'echo. Quindi se farai l'echo di un risultato ottenuto dal DB, in readText avrai quel risultato Ultima modifica di MEMon : 26-01-2007 alle 18:38. |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2005
Città: Palermo
Messaggi: 2579
|
Quote:
scordatevi di poter usare il solo javascript per poter eseguire una connessione al db. Non rientra nelle sue potenzialità. Oltretutto MeMon sfruttare per i propri programmi la creazione di oggetti activeX equivale a renderli compatibili solo con windows, visto che sono una invenzione microsoft.
__________________
Utente gran figlio di Jobs ed in via di ubuntizzazione Lippi, perchè non hai convocato loro ? |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
Quote:
prova un po' ad immaginare perchè 'iao |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Oct 2005
Città: Palermo
Messaggi: 2579
|
Quote:
può bastare ?
__________________
Utente gran figlio di Jobs ed in via di ubuntizzazione Lippi, perchè non hai convocato loro ? |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
sarà ma io lo utilizzo in una mia estensione che ovviamente va anche su linux.
|
|
|
|
|
|
#10 | |
|
Member
Iscritto dal: Aug 2003
Messaggi: 184
|
Quote:
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
certo, e fai in modo che la pagina php stampi il risultato della query con echo
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 184
|
non riesco a passargli quella variabile. nel file js io attribuisco
var choice = document.getElementById("choice").options[document.getElementById("choice").selectedIndex].value; ok, poi torna al file php in cui inserisco la query, ma se nella query inserisco come criterio di scelta il mio choice, non funziona. probabilmente perchè non sa che choice è il nome assegnato dal file js alla scelta fatta nella select... |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
ma la pagina php da dove la chiami?
dovrai usare javascript per appiccicarci il parametro alla fine! del tipo: Codice:
document.location.href = "paginaInterfacciaDB.php?choice=" + choice; e poi nella pagina php ti dovrai recuperare il parametro: Codice:
$choice = $_GET['choice']; |
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 184
|
Io un file "Index.php" in cui eseguo del codice javascript per far comparire due menu a tendina diversi in base alla scelta effettuta in un primo menu a tendina. Da qui vado tramite form ad un secondo file "auth.php" in cui propongo una terza scelta con menu a tendina ed è in questo che richiamo con l'evento onchange della select il file js che deve eseguire codice in stile ajax, quindi creare l'oggetto xmlhttprequest, leggere il valore della select precedente (choice) e fin qui va bene.
A questo punto, quando termina l'esecuzione, il controllo mi torna al file auth.php e non riesco a capire come fare per eseguire la query mysql in cui inserire il valore di choice memorizzato nel file js. spero di essere riuscito a spiegarmi...
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
choice gliela devi pssare con GEt ovviamente, forse ti sfugge come funziona.
In pratica ad uno script PHP puoi passare una variabile tramite l'URL, basta mettere un "?" dopo l'URL seguito dal nome della variabile e dal suo valore. esempio: Vuoi pssare alla pagina php(http://tuodominio/pippo.php) la variabile choice, quindi scrivi l'URL così: http://tuodominio/pippo.php?choice=12345 ora nello script php per riprendere la variabile ti basta fare: $scelta=$_GET['choice'] vedrai che $scelta ora vale 12345 e la puoi utilizzare come ti pare. Vediamo con AJAX ora: Codice:
var php_link="http://tuodominio/pippo.php";
var choice=12345;
function httpRequest(){
myRequest=CreateXmlHttpObject(httpReturnResponse);
myRequest.open("GET",php_link+"?choice="+choice,true);
myRequest.send(null);
}
|
|
|
|
|
|
#16 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 184
|
In "auth.php" ho scritto
echo" <select name=choice size=1 onchange=httpRequest()> <option value=uno>One</option> <option value=due>Two</option> <option value=tre>Three</option> </select> "; $scelta=$_GET['choice']; nel file js: function httpRequest(){ var php_link="getTopicsByCountryID.php"; var choice = document.getElementById("choice").options[document.getElementById("choice").selectedIndex].value; alert("choice = " + choice); myRequest=CreateXmlHttpObject(httpReturnResponse); myRequest.open("GET",php_link+"?choice="+choice,true); myRequest.send(null); } ma quando apre il file "auth.php" mi da l'errore Notice: Undefined index: choice in C:\www\auth.php |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
che significa quande apre il file??
Comunque non va bene così, il php deve solo fare la query e stampare il risultato, la richiesta la devi lanciare da un altro file... |
|
|
|
|
|
#18 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 184
|
mmmm......... ok
a proposito... conosci qualche script che mi permette di visualizzare il grafico a torta relativo ai dat estratti dalla query? |
|
|
|
|
|
#19 |
|
Member
Iscritto dal: Aug 2003
Messaggi: 184
|
Più che altro il mio problema è come riuscire a passare le variabili che ho nel mio file php al file js...
########### file.php ########### <?php $var_uno = 1; $var_uno = 2; $var_uno = 3; ?> <html> <body onload=func()> </body> </html> ########### file.js########### function func(){ /* ??? */ } anche solo per stamparle con una alert..... |
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
le devi stampare con un echo, e poi ti ritorneranno indietro dopo la chiamata AJAX e le potrai recuperare con responseText, come ti ho già detto due volte.
Rileggiti tutto |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:40.



















