Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70

    rilevare valori di una form generata da una chiamata ajax

    salve di nuovo -.-

    allora io ho un div, nella mia paginetta, dove viene generato un form html attraverso una chiamata ajax.

    il codice del php che genera il form è:

    Codice PHP:
    echo ("<form id='missivanuova' name='missivanuova' onsubmit=\"return false;\" action=''>");
    echo (
    "Destinatario: <input type='text' size='22' name='Destinatario' value=''>
    "
    );
    echo (
    "<textarea name='Testo' style=\"width: 368px; height: 160px;\"></textarea>");
    echo (
    "

    <input type='submit' onclick=\"spediscimissiva('"
    .$idallegato."','".$iddacancellare."');\" class='pulsantesubmit' value='Spedisci'></div>");
    echo (
    "</form>"); 
    dalla pagina quindi, quando premo il pulsantino "Spedisci", si avvia la funzione di post in ajax , che immediatamente si impalla sul:

    codice:
    destinatario = document.forms['missivanuova'].elements['Destinatario'].value;
    la console errori mi ritorna:
    Errore: document.forms.missivanuova has no properties

    ho "paura" che c'entri dal fatto che il form è generato in quella pagina, ma non c'è fisicamente. come posso fare? sbaglio qualcosa?

    grazie ancora

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70
    errore mio, risolto.

    poco prima di rilevare il valore mettevo nel div una immagine temporanea di caricamento... =_= per forza la funzione non vedeva il form.. non c'era più XD
    scusate

    piuttosto, il problema ora si è trasferito sull'invio in post tramite ajax. Il form è quello che vedete nel messaggio sopra. La funzione completa che si occupa di prelevare i valori è:

    codice:
        function spediscimissiva() {
        
    	destinatario = document.forms['missivanuova'].elements['Destinatario'].value;
    	testomissiva = document.forms['missivanuova'].elements['Testo'].value;
    	parametri = 'Destinatario='+ destinatario +'&Testo='+ testomissiva;
        myRequest = CreateXmlHttpReq2();
        myRequest.open("POST", "scrivimessaggio_engine.php" , true)
    
    	myRequest.onreadystatechange=function(){
    
    		if (myRequest.readyState==4 || myRequest.readyState=="complete"){
                    if (myRequest.status == 200){
    				document.getElementById("vedimissiva").innerHTML=myRequest.responseText;
    				listamissive();
    				} else {
    				document.getElementById("vedimissiva").innerHTML="ERRORE "+myRequest.status;
    				listamissive();
    				}
    		} else {
    			document.getElementById("vedimissiva").innerHTML = "
    
    <center>[img]img/ajax-loader3.gif[/img]</center>";
    		}
            }
    	
    	myRequest.send(parametri);
    }
    nel php chiamato, ho fatto 3 righe di "test", giusto per vedere se le variabili sono passate.

    codice:
    $Destinatario = $_POST['Destinatario'];
    $Testo = $_POST['Testo'];
    echo ("test desti:".$Destinatario."
    test testo:".$Testo.".");
    le due variabili risultano vuote. =_=
    ma non capisco cosa ci sia di sbagliato. la console errori non mi restituisce nulla, quindi la funzione credo "funzioni". c'è qualche errore allora in tutto ciò? O.o

    grazie ancora

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.