PDA

View Full Version : invio dati ad altra pagina web (senza aprirla?) con javascript



black
16th December 2011, 19:27
mi fate un esempio per non normodotati per sta cosa? sto impazzendo (magari non si po fa)

var ajax = newAjax();
var url = "script.php";

ajax.open("GET", url, true);
ajax.send(null);
devo effettuare una chiamata http ad un altro server, e questo con quella chiamata produrra dei risultati. per ora sto impazzendo a capire il problema

ajax = newAjax();
var url = "http://192.168.1.202/paginadaraggiungere?a=1";

ajax.open("GET", url, true);
ajax.send(null);

oppure

ajax = newAjax();
var url = "http://192.168.1.202/paginadaraggiungere?a=1";

ajax.open("GET", url, true);
ajax.send("a=1");

black
16th December 2011, 20:11
forse chiedo troppo, ma alla fine quella che dovrei simulare è l'apertura di una pagina internet, senza però aprirla.

devo quindi fare una richiesta del tipo :

http://sitodaraggiungere/pagina.html?datidainviare=12

senza aprire la pagina. devo insomma simulare la navigazione in un url

San Vegeta
16th December 2011, 21:20
function PreparaDati(){
stringa = "";
var form = document.forms[0];
var numeroElementi = form.elements.length;

for(var i = 0; i < numeroElementi; i++){
if(i < numeroElementi-1){
stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value)+"&";
}else{
stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value);
}
}
}

function AJAXReq(method,url,bool){
if(window.XMLHttpRequest){
myReq = new XMLHttpRequest();
} else

if(window.ActiveXObject){
myReq = new ActiveXObject("Microsoft.XMLHTTP");

if(!myReq){
myReq = new ActiveXObject("Msxml2.XMLHTTP");
}
}

if(myReq){
execfunc(method,url,bool);
}else{
alert("Impossibilitati ad usare AJAX");
}
}

function execfunc(method,url,bool){
myReq.onreadystatechange = handleResponse;
myReq.open(method,url,bool);
myReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
myReq.send(stringa);
}

function InviaDati(){
PreparaDati();
AJAXReq("POST","getform.php",true);
}



il form è fatto così



<form method="post" action="getform.php" onsubmit="InviaDati(); return false;">
<label>Nick</label>: <input type="text" name="nick"><br />
<label>Email</label>: <input type="text" name="email"><br />
<label>Link</label>: <input type="text" name="link"><br />
<input type="submit" name="submit" value="Invia Dati" />
</form>


la risposta alla tua domanda è nelle funzioni AJAXReq() e execfunc()

black
16th December 2011, 21:28
ho provato cosi in 2 secondi il tuo codice.

mi apre la pagina chiamata dalla action, cosa che non voglio fare. vorrei solo che inviasse una chiamata tipo browser ad una pagina e basta

Bilu
17th December 2011, 01:43
con jquery:


<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$.get("http://192.168.1.202/paginadaraggiungere",
{ a: "1"},
function(data){
alert("risposta: " + data);
});
</script>

black
17th December 2011, 09:35
con jquery:


<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$.get("http://192.168.1.202/paginadaraggiungere",
{ a: "1"},
function(data){
alert("risposta: " + data);
});
</script>


grazie per il reply, ma non ho capito bene.

in $.get("xxxxxx") vado ad indicare l' url da raggiungere,
con {a:"1"} invio una casa del tipo ? ( ?pippo=1)
sotto la funcion (data) da invece solo il ritorno dell'esecuzione?

Bilu
17th December 2011, 13:23
in function(data) dentro data hai tutto il codice che stampa fuori la pagina http://192.168.1.202/paginadaraggiungere?a=1 in questo caso

Amiag
17th December 2011, 13:25
non puoi fare richieste ajax verso dominii differenti da quello della pagina di partenza


a parte questo il codice mi pare ok ma dipende dal framework che usi ovviamente

black
17th December 2011, 16:57
visto che devo interrogare diverse macchineho optato per php e tramite una richiesta di header ora faccio cio che voglio.


ora sto impazzendo con un xml in cui voglio leggere determinati valori e voglio stoccarli in un array tipo questo
$z++
$var1[$z] = $figlio->nodeValue;

partendo dal presupposto che di xml non conosco quasi nulla, mi sono preso uno script che legge e ripresenta a video ciò che legge.

solo che a me di averli a video frega poco per ora, ho solo bisogno di poter memorizzare in un array temporaneo i valori che leggo