Problema di invio dati AJAX-PHP

tommaso862000

Nuovo Utente
1 Ott 2008
6
0
0
Salve a tutti spero possiate aiutarmi in questo dilemma
allora io ho creato un form contenente delle select che si popolano mediante ajax.Fin qui tutto bene poi ho avuto la necessita di creare un tasto che alla sua pressione mi creasse altre due select uguali a due gia presenti nel form.
il tasto funziona benissimo le select si popolano
il problema è che quando premo il tasto invia per inviare i dati a php mi rileva solo le ultime due select inserite
AIUTOOOOOOOOOO
se avete bisogno del codice ditemelo che ve lo posto.
GRAZIE CIAO
 

lukeonweb

Utente Attivo
5 Mar 2003
5.175
13
38
45
Napoli
www.lucaruggiero.it
> il problema è che quando premo il tasto invia per inviare i dati a php
> mi rileva solo le ultime due select inserite

In che senso? Queste due select sono popolate via AJAX? Quali sono tutti i campi? Come passi i dati?

etc etc etc... :)
 

tommaso862000

Nuovo Utente
1 Ott 2008
6
0
0
> il problema è che quando premo il tasto invia per inviare i dati a php
> mi rileva solo le ultime due select inserite

In che senso? Queste due select sono popolate via AJAX? Quali sono tutti i campi? Come passi i dati?

etc etc etc... :)

si le select sono popolate da ajax ti metto il codice che crea queste select
Codice:
function Aggiungi()
{
	
	
		
 	 a++;
	    	//creo le righe e le colonne per inserire le select
		var oTr=document.createElement("tr");
	
		var oTd1=document.createElement("td");
		var oTd2=document.createElement("td");
		var oText=document.createTextNode("corso "+a);
		var oTr2=document.createElement("tr");
		 var oTd3=document.createElement("td");
		var oTd4=document.createElement("td"); 
		var tbody = document.createElement("tbody");
			 var oText=document.createTextNode("corso"+a);
	  	 var oText1=document.createTextNode("materia"+a);
	Corso[a]=document.createElement("SELECT");
	Materia[a]=document.createElement("SELECT");
	scuola=document.getElementById("categoria");
	Via=document.getElementById("Via");
		Corso.setAttribute("id", "corso"+a);
		 Corso.setAttribute("name", "corso"+a);	
		 scuola=document.getElementById("categoria");
		 Materia.setAttribute("id", "materia"+a);
		 Materia.setAttribute("name", "materia"+a);
//questa azione mi riempie la select delle materie
		 Corso.onChange=GetMateria(scuola.options[scuola.selectedIndex].value);
	     oTd1.appendChild(oText);
		 oTd2.appendChild(Corso);
		 oTr.appendChild(oTd1);
		  oTr.appendChild(oTd2);
		  oTd3.appendChild(oText1);
		   oTd4.appendChild(Materia);
		    oTr2.appendChild(oTd3);
			 oTr2.appendChild(oTd4);
			 tbody.appendChild(oTr);
			  tbody.appendChild(oTr2);
		
		
		 
		 //questa funzione mi riempie la select corso
		  GetClasse(Via.options[Via.selectedIndex].value, scuola.options[scuola.selectedIndex].value);
	document.getElementById("tabella").appendChild(tbody);
	nascosto=document.getElementById("numero");  
		nascosto.setAttribute("value",a);
	}


Ti ripeto che le select vengono popolate corretamente ,cmq vengono prelevate da una query in php se vuoi il codice dimmelo.
il problema è che se chiamo la funzione aggiungi più volte,quindi piu select nel form, alla pressione del tasto invia cioè qundo faccio il submit del form nell'array post esistono solo le ultime select aggiunte
Se non sono stato chiaro dimmelo ciao e grazie
 

tommaso862000

Nuovo Utente
1 Ott 2008
6
0
0
No, non molto :)

Puoi pubblicare la pagina di esempio cosi provo a capire che succede?

si ecco il codice Html
Codice:
<form action="insdocenteDB.php" method="get" id="form1">
  <table width="100%" border="0" cellspacing="0" cellpadding="0" id="tabella">
    <tr>
      <td>Nome</td>
      <td colspan="2"><input type="text" name="nome" id="nome" /></td>
    </tr>
    <tr>
      <td>Cognome</td>
      <td colspan="2"><input type="text" name="cognome" id="cognome" /></td>
    </tr>
    <tr>
      <td>Email</td>
      <td colspan="2"><input type="text" name="email" id="email" /></td>
    </tr>
    <tr>
      <td>Scuola</td>
      <td><label>
        <select name="scuola" id="categoria" onChange="Getplesso(this.options[this.selectedIndex].id)">
            <option>--seleziona la scuola--</option>
         <option value="1" id="1">Infanzia</option>
          <option value="2" id="2">Primaria</option>
          <option value="3" id="3">Primo Grado</option>
        </select>
      </label></td>
    </tr>
     <tr valign="top">
      <td>Via del Plesso</td>
      <td><label>
         <select name="Via" disabled="disabled" id="Via" onChange="GetClasse(this.options[this.selectedIndex].value, scuola.options[scuola.selectedIndex].value)" >
           <option selected="selected">---seleziona la via del plesso---</option>
         </select>
      </label>       </td>
    </tr>


      <tr>

      <td>Classe e Corso</td>
      <td colspan="2"><label>
       <select name="corso0"  disabled="disabled" id="corso0" onChange="GetMateria(scuola.options[scuola.selectedIndex].value,0)"  >
           <option>---seleziona il corso---</option>
         </select>
      </label> <label></label></td>
    </tr>
     <tr>

      <td>Materia</td>
      <td><label>
       <select name="materia0"  disabled="disabled" id="materia0" onChange="abilita()"  >
           <option>---seleziona il corso---</option>
        </select>
      </label> <label></label></td>
       <tbody id="contenuto" name="contenuto">
       </tbody>

      <td></td>
      <td><input name="numero" type="hidden" value="" id="numero"  /></td>
    </tr>
	  </table>
	   <div align="left"><input name="button" type="button" id="add" value="aggiungi materia e corso" onClick="Aggiungi()" /></div>
       <div align="right">
        <input name="submit" type="submit" value="invia"  />
      </div>
</form>


il tasto aggiungi maeteria e corso mi deve aggiungere altre due select materia e corso.La funzione aggiungi te l'ho impostata sopra.
Il problema è che quando clicco sul tasto invia mi prende i campi nome,cognome,email scuola,via e poi mi prende solo le ultime due select aggiunte.
 

tommaso862000

Nuovo Utente
1 Ott 2008
6
0
0
Ti inivio anche il codice completo di ajax con tutte le funzioni sicuramente il codice non sarà ottiamale anche perche e da due giorni che sto usando ajax
Codice:
var url = "select1.php";
var url1 = "selectsezione.php";
var what = "SetLinguaggi(req.responseText)";
var what1 = "SetLinguaggi1(req1.responseText)";
var url3 = "selectMateria.php";
var what3 = "SetMateria(req2.responseText)";

function Getplesso(Categoria)
{

  InviaDati("categoria="+Categoria);
}

function SetLinguaggi(Linguaggi)
{

  var linguaggioBox = document.getElementById("Via");

   linguaggioBox.disabled=false;

  if(Linguaggi != "")
  {

    var arrLinguaggi = Linguaggi.split(",");
	    linguaggioBox.options[linguaggioBox.options.length] =
        new Option("","");
    for(i = 1; i < arrLinguaggi.length; i=i+2)
    {
      if(arrLinguaggi[i] != "")
      {

        linguaggioBox.options[linguaggioBox.options.length] =
        new Option(arrLinguaggi[i], arrLinguaggi[i-1]);

      }
    }

	}


}
function InviaDati(data)
{
  // istanziamo l'oggetto XMLHttpRequest
  if (window.XMLHttpRequest)
  {
    req = new XMLHttpRequest();
    req.onreadystatechange = PocessaDati;
    req.open('POST', url, true);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.send(data);
  }
  // controlliamo la versione di ActiveX
  else if (window.ActiveXObject)
  {
    req = new ActiveXObject('Microsoft.XMLHTTP')
    if (req)
    {
      req.onreadystatechange = PocessaDati;
      req.open('POST', url, true);
      req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      req.send(data);
    }
  }
}

function PocessaDati()
{
  // monitoriamo lo stato dell'invio
  if (req.readyState == 4)
  {
    // restituiamo lo stato della richiesta
    if (req.status == 200)
    {
      eval(what);
    }else{
      alert('Problema nella gestione dei dati: ' +
      req.responseText);
    }

  }
}

function GetClasse(id_via,id_tipo)
{
	InviaDati2("id_plessotipo="+id_via+" "+ id_tipo);

	}

	function InviaDati2(data)
{

  // istanziamo l'oggetto XMLHttpRequest
  if (window.XMLHttpRequest)
  {
    req1 = new XMLHttpRequest();
    req1.onreadystatechange = PocessaDati1;
    req1.open('POST', url1, true);
    req1.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req1.send(data);
  }
  // controlliamo la versione di ActiveX
  else if (window.ActiveXObject)
  {
    req1 = new ActiveXObject('Microsoft.XMLHTTP')
    if (req1)
    {
      req1.onreadystatechange = PocessaDati;
      req1.open('POST', url1, true);
      req1.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      req1.send(data);
    }
  }
}
function PocessaDati1()
{
  // monitoriamo lo stato dell'invio
  if (req1.readyState == 4)
  {
    // restituiamo lo stato della richiesta
    if (req1.status == 200)
    {
      eval(what1);
    }else{
      alert('Problema nella gestione dei dati: ' +
      req1.responseText);
    }
  }
}

function SetLinguaggi1(Linguaggi2)
{

	var numcorso="corso"+a;
  var linguaggioBox = document.getElementById(numcorso);
  linguaggioBox.options.length = 0;
   linguaggioBox.disabled=false;
 if(Linguaggi2 == "")alert("Spiacente ma non sono stati ancora definiti i corsi per questo plesso");
  if(Linguaggi2 != "")
  {
	  linguaggioBox.options[linguaggioBox.options.length] =
        new Option("","");
    var arrLinguaggi = Linguaggi2.split(",");

    for(i = 1; i < arrLinguaggi.length; i=i+2)
    {
      if(arrLinguaggi[i] != "")
      {
        linguaggioBox.options[linguaggioBox.options.length] =
        new Option(arrLinguaggi[i], arrLinguaggi[i-1]);

      }
    }

	}


}


function GetMateria(Categoria)
{

  InviaMateria("categoria="+Categoria);
}

function SetMateria(Materia)
{

  var linguaggioBox = document.getElementById("materia"+a);
  linguaggioBox.options.length = 0;
   linguaggioBox.disabled=false;

  if(Materia != "")
  {
    var arrLinguaggi = Materia.split(",");
	 linguaggioBox.options[linguaggioBox.options.length] =
        new Option("","");
    for(i = 1; i < arrLinguaggi.length; i=i+2)
    {
      if(arrLinguaggi[i] != "")
      {

        linguaggioBox.options[linguaggioBox.options.length] =
        new Option(arrLinguaggi[i], arrLinguaggi[i-1]);

      }
    }

	}


}
function InviaMateria(data)
{

  // istanziamo l'oggetto XMLHttpRequest
  if (window.XMLHttpRequest)
  {
    req2 = new XMLHttpRequest();
    req2.onreadystatechange = PocessaMateria;
    req2.open('POST', url3, true);
    req2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req2.send(data);
  }
  // controlliamo la versione di ActiveX
  else if (window.ActiveXObject)
  {
    req2 = new ActiveXObject('Microsoft.XMLHTTP')
    if (req)
    {
      req2.onreadystatechange = PocessaMateria;
      req2.open('POST', url3, true);
      req2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      req2.send(data);
    }
  }
}

function  PocessaMateria()
{

  // monitoriamo lo stato dell'invio
  if (req2.readyState == 4)
  {
    // restituiamo lo stato della richiesta
    if (req2.status == 200)
    {
      eval(what3);
    }else{
      alert('Problema nella gestione dei dati: ' +
      req2.responseText);
    }
  }
}
 

tommaso862000

Nuovo Utente
1 Ott 2008
6
0
0
Ciao quarda che il problema lo risolto
separando la parte anagrafica ad quella di asseganzione dei corsi e elle materie in due pagine diverse sinceramente non ho capito dove stava il problema anche perche alla fine è la stessa cosa BAAAAAA.
Cmq sarei curioso di sapere il perchè percui quando hai tempo se puoi rispondimi grazie infinite per la disponibilità ciao
Tommy
 

tommaso862000

Nuovo Utente
1 Ott 2008
6
0
0
Ciao credo di aver capito il problema anche se la cosa mi sembra assurda
Praticamente in javascript ogni volta che aggiungevo una nuova materia e un unovo corso disabilitavo le select delle materie e dei corsi precedenti
Praticamente qundo invio il form i campi disabilitati non esistono più
Sapresti darmi una spiegazione anche perche mi serve che questi campi vengono disabilitati. Grazie ciao
 
Discussioni simili
Autore Titolo Forum Risposte Data
A Problema invio dati form contatti PHP 12
S Problema con invio dati PHP 0
P Problema di invio dati PHP 4
Z Problema invio dati da textarea PHP 2
A Problema form invio dati PHP 2
T Problema invio dati ad altra pagina PHP 1
D Problema nell'invio dei dati di un form ad uno script AJAX Ajax 8
S Problema con invio dati da tastiera... PHP 7
K Problema invio dati form con ASP Classic ASP 8
Daniele_Carrara Problema timeout - invio mail PHP 7
M [PHP] Problema script ricezione e invio posta... PHP 1
C [PHP] Problema Invio Email Elseif PHP 2
A [PHP] Problema invio mail con funzione mail() PHP 3
S Problema in PHP per invio file XML - RISOLTO- PHP 8
Punix [PHP] problema script invio e-mail PHP 2
cobra_72 [PHP] problema invio multiplo allegati mail PHP 21
S Problema invio form php/html PHP 3
R PROBLEMA INVIO EMAIL AL CAMBIO DI STATO ORDINE E-Commerce 1
L invio smtp con phpmailer - problema invia due volte la email allo stesso utente PHP 0
Il Matta Problema Form e invio mail PHP 2
asevenx problema invio email tramite form PHP 3
B Problema form mail per invio doppio allegato PHP 1
A Problema orario invio mail per form PHP 4
O [PHP] Problema Invio Mail PHP 2
D Problema modulo invio messaggio da sito web PHP 7
A Problema invio messaggio col form PHP 1
L Problema di invio "value" PHP 1
Task Mc Problema form invio email da sito ç__ç PHP 4
L problema invio newsletter con script proprio in php PHP 10
A problema invio mail PHP 5
S Problema con l'invio del form in php PHP 0
F Problema form invio email php PHP 3
A problema con l'invio della password tramite email PHP 23
C problema invio mail con form php PHP 0
P Problema invio email da php PHP 9
J problema con apache2+php ed invio file con cURL Apache 2
J Problema invio file con cURL php su server verso server PHP 1
D Problema invio mail [GIA POSTATO ERRONEAMENTE IN HTML] PHP 0
D Problema invio mail PHP 6
LaKanka Problema invio e-mail, prima riga vuota PHP 0
C Mail e php problema invio PHP 11
L Problema invio allegati via mail con libero PHP 5
V Problema con l'invio delle mail in locale (usando quindi easy php) PHP 16
S Problema invio mail da form Classic ASP 6
C Problema con il doppio invio nel form con onsubmit HTML e CSS 9
M problema script invio email multiplo PHP 8
Angel0 Problema invio e-mail (era: problemi con xoom) Posta Elettronica 4
B problema invio email PHP 7
B problema invio email PHP 7
H Problema invio e-mail in WebSite X5 Posta Elettronica 0

Discussioni simili