Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX]ajax przesylanie formularza
Forum PHP.pl > Forum > Przedszkole
neo1986kk
Witam próbuję przeslać formularz ajaxem ale napytam na ta taki problem, że po kliknięciu "wyślij" nie idzie cała funkcja, a po ponownym kliknięciu "wyślij" powstaje błąd "form is undefined"

  1.  
  2. function complete()
  3. {
  4. alert('pierwszy');// po wysłaniu ten alert wyskakuje
  5. formname='sedndata';
  6. responsediv=document.getElementById('Terminarz');
  7. var day = document.getElementById('day').value;
  8. var month = document.getElementById('month').value;
  9. var year = document.getElementById('year').value;
  10. if (XMLHttpRequestObject) {
  11. alert('ifhtpprequest');
  12. XMLHttpRequestObject.open("POST", "result.php");
  13. XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  14.  
  15. XMLHttpRequestObject.onreadystatechange = function ()
  16. {
  17. if (XMLHttpRequestObject.readyState == 1)
  18. {
  19. alert('drugi');// ten już nie - dopiero kiedy nacisne 2 raz
  20. document.getElementById('td1').innerHTML ='<div class="ajaxloader"></div>';
  21. }
  22. if (XMLHttpRequestObject.readyState == 4)
  23. {
  24. updatepage(XMLHttpRequestObject.responseText,responsediv);
  25. }
  26. XMLHttpRequestObject.send(getquerystring(formname));
  27. }
  28. }
  29. }
  30.  
  31.  
  32. function getquerystring(formname) {
  33. var form = document.forms[formname];
  34. var qstr = "";
  35. function GetElemValue(name, value) {
  36. qstr += (qstr.length > 0 ? "&" : "") +
  37. escape(name).replace(/\+/g, "%2B") +
  38. "="+ escape(value ? value : "").replace(/\+/g, "%2B");
  39. }
  40. var elemArray = form.elements; // za pierwszym kliknieciem nie dochodzi tutaj, za 2 blad form is undefined
  41. for (var i = 0; i < elemArray.length; i++) {
  42. var element = elemArray[i];
  43. var elemType = element.type.toUpperCase();
  44. var elemName = element.name;
  45. if (elemName) {
  46. if (elemType == "TEXT")
  47. GetElemValue(elemName, element.value);
  48. }
  49. }
  50. return qstr;
  51. }


i kod html, który jest w większej części dodany przez appendchildy

  1.  
  2. <form id="purchaseContainer1" onsubmit="complete(); return false;" name="senddata">
  3. <div id="addInpt1" class="add" style="display: block;">
  4. <button class="add" onclick="addInpt(); return false;">dodaj pozycję</button>
  5. <input class="complete" type="submit" value="wyśli"/> //przycisk, który muszę kliknąć 2 razy zeby przeszła funkcja:/
  6. </div>
  7. <div class="label2">Zakup</div>
  8. <div class="label2">Ilosc</div>
  9. <div class="label2">Cena ()</div>
  10. <div class="label2">Prowizja (%)</div>
  11. <input class="purchaseItem" type="text" name="purchase[]"/>
  12. <input class="purchaseItem" type="text" name="volume[]"/>
  13. <input class="purchaseItem" type="text" name="price[]"/>
  14. <input class="purchaseItem" type="text" name="procentage[]"/>
  15.  
  16. <input class="purchaseItem" type="text" name="purchase[]"/>
  17. <input class="purchaseItem" type="text" name="volume[]"/>
  18. <input class="purchaseItem" type="text" name="price[]"/>
  19. <input class="purchaseItem" type="text" name="procentage[]"/>
  20.  
  21. <input class="purchaseItem" type="text" name="purchase[]"/>
  22. <input class="purchaseItem" type="text" name="volume[]"/>
  23. <input class="purchaseItem" type="text" name="price[]"/>
  24. <input class="purchaseItem" type="text" name="procentage[]"/>
  25. </form>
  26.  

dla send(null) tez nie dochodzi do konca za pierwszym razem, co tu jest nie tak?
darko
Tak na szybko co mi się rzuciło w oczy to że funkcja podczepiona do zdarzenia onsubmit powinna w rezultacie zwrócić wartość true.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.