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à 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