• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

AJAX Problem(chen?)

cayamu

New member
Hallo zusammen,

ich entschuldige mich vorweg für meine Unwissenheit - ich bin Newbie was Ajax (und leider auch Javascript) betrifft.

Ich setze ein Ajax-Script ein, das mir Formularfelder mittlerweile gut ausgibt. Allerdings ist das gesamte Formular eine ziemliche div-Verschachtelung und alle Formularelemente, die sich in einem "Unter-Div" befinden, werden nicht ausgegeben.

Das Ajaxscript:

PHP:
function get(obj) {
      var newstr = "?";
      var getstr = "&";
      for (i=0; i<obj.childNodes.length; i++) {
         if (obj.childNodes[i].tagName == "INPUT") {
            if (obj.childNodes[i].type == "text") {
               newstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
            }
            if (obj.childNodes[i].type == "hidden") {
               newstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
            }
            if (obj.childNodes[i].type == "checkbox") {
               if (obj.childNodes[i].checked) {
                  getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
               } else {
                  getstr += obj.childNodes[i].name + "=&";
               }
            }
            if (obj.childNodes[i].type == "radio") {
               if (obj.childNodes[i].checked) {
                  getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
               }
            }
         }   
         if (obj.childNodes[i].tagName == "SELECT") {
            var sel = obj.childNodes[i];
            getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
         }
         
      }
      makeRequest('warenkorb.php',  newstr+getstr);
   }

das formular beginnt in einem div und solange es keine weiteren Elemente gibt, funzt es einwandfrei, nur eben sobald in diesem div ein weiteres mit formularelementen folgt, wirden diese ignoriert.

könnte mir bitte jemand hier weiterhelfen, ich arbeite jetzt seit 3 Tagen und Nächten an dem Script und fast wäre es fertig, aber eben nur fast.

Bin für Hilfe wirklich dankbar!
Vielen Dank,
Monika
 
ja und wie mache ich das? ich schrieb doch, dass ich newbie bin - kannst du mir dazu einen weiteren anhalt geben oder einen gut verständlichen link, der mich hier weiter bringt?

danke
monika
 
Du kannst auch gleich über alle Elemente des Formulars laufen:
Statt dem div, direkt das formular übergeben
[/code]

Vielen Dank für die Hinweise, inbesondere der Tip mit dem Formular übergeben war wirklich hilfreich, da mehrere Formulare auf der Seite vorhanden sind.

Falls mal jemand sucht - hier eine unkomplizierte Version mit Checkboxen:

PHP:
<?php 
   function elmLoop(o){
	var theForm = document.forms[o];

	var formValues ="";
   for(i=0; i<theForm.elements.length; i++)
   {
 
      if(theForm.elements[i].type == "checkbox"){
     	if (theForm.elements[i].checked == true)
		{
	  	formValues += theForm.elements[i].name + "=" + theForm.elements[i].value+ "&";
	 	}
	  }
      else if(theForm.elements[i].type == "text" || theForm.elements[i].type == "textarea" || theForm.elements[i].type == "hidden"){
      formValues += theForm.elements[i].name + "=" + theForm.elements[i].value+ "&";
      }
      else if(theForm.elements[i].type == "select-one"){
      formValues += theForm.elements[i].name + "=" + theForm.elements[i].value+ "&";
	  }
	} 
} ?>

In dem Fall wird formValues gebraucht für die Übergabe in ein anderes div.

Aufruf mit: <input type="button" onclick="elmLoop('myform');" name="button" value="senden">

Merci!
 
Zurück
Oben