Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    [AJAX] - trasmettere dato campo input

    Ho un campo di input, in cui l'utente scrive il proprio indirizzo email; al click sul pulsante di invio, parte una request AJAX (vedi JS sotto).
    Io vorrei poter passare, con la request, l'indirizzo email inserito nel campo, ed altre due variabili (che identificano la notizia a cui è interessato l'utente), ma come posso fare?
    Questo è il JS:
    Codice PHP:
    function createRequestObject() { 
    var 
    ro
    var 
    browser navigator.appName
    if (
    browser == "Microsoft Internet Explorer") { 
    ro = new ActiveXObject("Microsoft.XMLHTTP"); 
    } else { 
    ro = new XMLHttpRequest(); 

    return 
    ro

    var 
    http createRequestObject(); 
    function 
    sndReq(action) { 
    http.open('get''loadreply.php?action='+action); 
    http.onreadystatechange handleResponse
    http.send(null); 

    function 
    handleResponse() { 
    if (
    http.readyState == 4) { 
    var 
    response http.responseText
    document.getElementById("full").innerHTML response;
        } 
    }
    function 
    handleResponse() {
    if (
    http.readyState == 4) {
    var 
    response http.responseText;
    var 
    el=document.getElementById("full");
    el.innerHTML response;
    el.scrollTop=0;
        }

    e questo è come invio la request:
    Codice PHP:
    [url="sndReq('indes-2')"]click[/url
    dove indes e 2 sono un esempio delle due variabili. Ma come posso aggiungere anche il valore del campo di input?
    Suggerimenti?
    metatad
    graphic & web design

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    click

    E questa sintassi dove l'hai trovata ?

    click

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    l'ho trovata su un sito già sviluppato da me, e che funziona benissimo...
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    up?
    metatad
    graphic & web design

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da metatad
    up?
    click

    Se a te funziona questa sintassi non ti posso aiutare, e' un browser che non conosco

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    beh, veramente funziona con i maggiori browser... IE e FF...
    comunque, per la precisione, la sintassi esatta è:
    Codice PHP:
    <a href="javascript:sndReq('other')" 
    Nel riportarlo nel post, avendo agito a memoria, ho omesso il javascript:...
    Non so, non avendo mai provato, se funzionerebbe anche senza. Di sicuro, se mettessi la chiamata JS nell'evento onClick, si potrebbe omettere...
    metatad
    graphic & web design

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Tralasciando le imprecisioni precedenti , prova ad accodarle alla richiesta:

    function sndReq(action,primo,secondo) {
    http.open('get', 'loadreply.php?action='+action+'&primo='+primo+'&s econdo='+secondo);

    accodandole ovviamente anche alla chiamata:

    click

    Poi tu parli di variabili... ma come le ottieni? dall'interazione dell'utente con un form?
    allora le devi ricavare dal form stesso:

    function sndReq(action) {
    primo = document.nomeDelForm.nomeDelPrimoCampo.value;
    secondo = document.nomeDelForm.nomeDelSecondoCampo.value;
    http.open('get', 'loadreply.php?action='+action+'&primo='+primo+'&s econdo='+secondo);

    senza ovviamente accodarle alla chiamata:

    click

    Le infinite varianti alla procedura dipendono da come e' realmente fatta la tua pagina e dalle tue intenzioni, la prima sconosciuta, le seconde ancora vaghe

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Posto che il passaggio delle variabili avviene attraverso il tag href, la mia difficoltà non sta nell'accodarle - cosa che posso fare tranquillamente, tanto più che la pagina che viene interrogata è in PHP, quindi posso lavorarci su tranquillamente - ma sul come accodare anche un valore corrispondente a quanto inserito in un campo input.
    La struttura del div di invio/destinazione nella pagina è, più o meno, questa:
    Un testo
    Un campo input (in cui l'utente inserisce il proprio indirizzo email)
    Un'immagine/pulsante

    Cliccando su quest'ultima, parte la request AJAX.
    Io la posso costruire agevolmente così:
    Codice PHP:
    <a href=\"sndReq('" $idoffer "-" $time "')\">(...)</a> 
    laddove $idoffer e $time sono due variabili che creo/passo con PHP (poi mi faccio un explode usando come divisore il segno -).
    Ma come faccio ad aggiungere il contenuto del campo input, che sta proprio prima del pulsante?
    É qui che mi impallo...

    Spero stavolta di essere stato più chiaro...
    metatad
    graphic & web design

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Veramente te l'ho gia' postato
    Originariamente inviato da br1
    ...
    Poi tu parli di variabili... ma come le ottieni? dall'interazione dell'utente con un form?
    allora le devi ricavare dal form stesso:

    function sndReq(action) {
    primo = document.nomeDelForm.nomeDelPrimoCampo.value;
    secondo = document.nomeDelForm.nomeDelSecondoCampo.value;
    http.open('get', 'loadreply.php?action='+action+'&primo='+primo+'&s econdo='+secondo);

    senza ovviamente accodarle alla chiamata:

    click

    Le infinite varianti alla procedura dipendono da come e' realmente fatta la tua pagina ...
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Ooops! Ok, grazie... quindi, dovrei metterlo direttamente nel JS...
    Hummm... mi creerà qualche problema, risolvere... perchè, in effetti, la pagina è dinamica, tutta costruita in PHP, ed il numero di possibili campi-input+pulsanti request è variabile, e può anche essere elevato (30/40).
    Certo, posso costruirmi il JS dinamicamente, sempre via PHP, ma dovrei creare tante funzioni diverse quanti sono i campi-input nella pagina...
    Forse, dovrò cercare un'altra soluzione, perchè così mi appesantisce troppo la pagina - che già non scherza di suo...
    metatad
    graphic & web design

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.