Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    116

    Ajax - Submit a form: delucidazioni per Input type hidden

    Buon giorno a tutti,
    volevo chiedere un aiuto per un problema che sto riscontrando con ajax e con l'invio, via POST, di valori presenti negli input type hidden (ed anche password).
    Questo è il mio codice js :
    codice:
         function formget(f, url,divid) {
    	var poststr = getFormValues(f);
    	postData(url, poststr,divid);
          }
    
    function postData(url, parameters,divid){
         var xmlHttp = AJAX();
         xmlHttp.onreadystatechange =  function(){
         if(xmlHttp.readyState > 0 && xmlHttp.readyState < 4){						         
                  document.getElementById(divid).innerHTML=loadingmessage;
         }
         if (xmlHttp.readyState == 4) { 				 
           document.getElementById(divid).innerHTML=xmlHttp.responseText;
         }
    
        }
             xmlHttp.open("POST", url, true);
             xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");			
             xmlHttp.send(parameters);
     }
    			
    
    function getFormValues(fobj){
     var str = "";
     var valueArr = null;  
     var val = ""; var cmd = ""; 
     for(var i = 0;i < fobj.elements.length;i++){ 
              switch(fobj.elements[i].type){ 
                   case "text": 
                   case "hidden": 
                   case "password": 
                    str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
                      break; 
                  case "textarea":
                       str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
                       break;
                  case "select-one":
                    str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
                     break; 
                 case "select-multiple":
                     str += fobj.elements[i].name + "=" +  fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&"; 
                     break;
                 case "checkbox":
                     if(fobj.elements[i].checked == true){ 
                       str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&"; 
                     } 
                    break;
                  case "radio": 
                    if(fobj.elements[i].checked == true){ 
                        str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&"; } break; 
                     }
              }
                  str = str.substr(0,(str.length - 1)); return str; 
            }
    questo invece è il mio codice php di esempio:
    codice:
    <form id="aForm2">
        <label>Lunghezza prodotto: (mm)
    
    
           <input type="text" name="lung_prod" id="lung_prod" value="" size="4" tabindex="50"  />
       </label>
         <label>Quantit&agrave; di vendita:
    
     <input type="text" name="quantita" id="quantita" value="" size="4" tabindex="60"  />
    </label>
      <input type="hidden" name="user" value="<?php echo $_SESSION['user_id']?>" />
    
    <input type="button" name="Send" value="Send" onclick="javascript: formget(this.form, 'controller/elabora_richiesta.php','output2');">
    </form>
    La mia domanda è : perchè la funzione getFormValues riconosce tutti i vari elementi input types tranne hidden e password?

    Vi ringrazio per l'aiuto

  2. #2
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237
    Nell'input hidden hai provato a mettere un value "statico" cioè non una variabile php ma un semplice testo?

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    per verificare cosa succede aggiungi un'opzione ai case dello switch:
    codice:
    default:
    alert("tipo = "+fobj.elements[i].type);
    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

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    116
    Originariamente inviato da sgogghy
    Nell'input hidden hai provato a mettere un value "statico" cioè non una variabile php ma un semplice testo?
    Si già fatto ma stesso risultato...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    116
    Originariamente inviato da br1
    per verificare cosa succede aggiungi un'opzione ai case dello switch:
    codice:
    default:
    alert("tipo = "+fobj.elements[i].type);
    Grazie del suggerimento!

    Alla fine devo dire mea culpa! Avevo erroneamente copiato la stessa funzione in un altro file js .. Ok sono fuso io ho bisogno di ferie!
    Scusate la mia distrazione! Cmq br1 grazie del suggerimento mi sarà molto utile anche per il futuro!

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    116
    Giusto per curiosità:
    esiste un sito che per ogni input types dia la descrizione di come prelevare il valore?
    Mi riferisco tipo a questi input types:
    -color
    -date
    -datetime
    -datetime-local
    -email
    -month
    -number
    -range
    -search
    -tel
    -time
    -url
    -week
    Alcuni sono semplici in quanto assomigliano molto all'input type text . Altri invece no.
    Qualche suggerimento?

  7. #7
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237
    W3C

    http://www.w3schools.com/tags/tag_input.asp

    Ma molti sono per HTML 5.

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.