login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[AJAX] Submit script

Offline OceanIdiot - 01/08/2010 12:09 (laatste wijziging 01/08/2010 12:11)
Avatar van OceanIdiotNieuw lid Hoihoi,

Ik probeer een submit script te maken mbv AJAX. En dit lukt tot op zekere hoogte.. Ik krijg het enkel voor elkaar <input> tags te verwerken. Een <select> bijvoorbeeld niet.
Hieronder staat mijn code.
http://www.plaatscode.be/139787/
Het php bestand dat de submit verwerkt bevat:
  1. <?php
  2. print_r($_POST);
  3. ?>

Ik zelf denk dat de fout hier ergens zit
  1. if (obj.getElementsByTagName("input")[i].tagName == "SELECT") {

maar als ik het verander naar
  1. if (obj.getElementsByTagName("select")[i].tagName == "SELECT") {

werkt het helemaal niet meer...

De op dit moment krijg ik deze server response:
  1. Array ( [test] => teststring [myradio] => 0 [mycheck1] => [mycheck2] => [mycheck3] => [mycheck4] => [mycheck5] => )


Zoals je ziet wordt de select helemaal niet mee genomen... Ik zou graag willen weten hoe wél.

Alvast bedankt!

4 antwoorden

Gesponsorde links
Offline gnotrgnotr - 01/08/2010 12:18
Avatar van gnotrgnotr Nieuw lid
  1. <html>
  2. <head><script type="text/javascript" language="javascript">
  3. var http_request = false;
  4. function POSTrequest(sssfile, data) {
  5. http_request = false;
  6. if(window.XMLHttpRequest) { // Code for firefox, opera, safari, etc...
  7. http_request = new XMLHttpRequest();
  8. if(http_request.overrideMimeType) {
  9. http_request.overrideMimeType('text/html');
  10. // http_request.overrideMimeType('text/xml');
  11. }
  12. }
  13. else if(window.ActiveXObject) { // Code for IE
  14. try {
  15. http_request = new ActiveXObject("Msxml2.XMLHTTP");
  16. }
  17. catch(error) {
  18. try {
  19. http_request = new ActiveXObject("Microsoft.XMLHTTP");
  20. }
  21. catch(error) { }
  22. }
  23. }
  24. if(!http_request) {
  25. alert("Cannot create XMLHTTP instance");
  26. return false;
  27. }
  28. http_request.onreadystatechange = alertContents;
  29. http_request.open('POST', sssfile, true);
  30. http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  31. http_request.setRequestHeader("Content-length", data.length);
  32. http_request.setRequestHeader("Connection", "close");
  33. http_request.send(data);
  34. }
  35. function alertContents() {
  36. if(http_request.readyState == 4) {
  37. if(http_request.status == 200) {
  38. result = http_request.responseText;
  39. document.getElementById('myspan').innerHTML = result;
  40. }
  41. else {
  42. alert("Er was een probleem bij het verwerken van de data.");
  43. }
  44. }
  45. }
  46. function get(obj) {
  47. var poststr = "";
  48. for (i=0; i < obj.getElementsByTagName("input").length; i++) {
  49. if (obj.getElementsByTagName("input")[i].type == "text") {
  50. poststr += obj.getElementsByTagName("input")[i].name + "=" +
  51. obj.getElementsByTagName("input")[i].value + "&";
  52. }
  53. if (obj.getElementsByTagName("input")[i].type == "checkbox") {
  54. if (obj.getElementsByTagName("input")[i].checked) {
  55. poststr += obj.getElementsByTagName("input")[i].name + "=" +
  56. obj.getElementsByTagName("input")[i].value + "&";
  57. } else {
  58. poststr += obj.getElementsByTagName("input")[i].name + "=&";
  59. }
  60. }
  61. if (obj.getElementsByTagName("input")[i].type == "radio") {
  62. if (obj.getElementsByTagName("input")[i].checked) {
  63. poststr += obj.getElementsByTagName("input")[i].name + "=" +
  64. obj.getElementsByTagName("input")[i].value + "&";
  65. }
  66. }
  67. if (obj.getElementsByTagName("input")[i].tagName == "SELECT") {
  68. var sel = obj.getElementsByTagName("select")[i];
  69. poststr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
  70. }
  71. }
  72. }
  73.  
  74. POSTrequest('includes/showMessage.include.php', poststr);
  75. </script>
  76. </head>
  77. <body><div>
  78. <form action="javascript:get(document.getElementById('myform'));" name="myform" id="myform">
  79. <tr><td><input type="text" name="test" value="teststring"><br></td></tr>
  80. <input type="radio" name="myradio" value="0" checked> 0
  81. <input type="radio" name="myradio" value="1"> 1<br>
  82. <input type="checkbox" name="mycheck1" value="1"> 1
  83. <input type="checkbox" name="mycheck2" value="2"> 2
  84. <input type="checkbox" name="mycheck3" value="3"> 3
  85. <input type="checkbox" name="mycheck4" value="4"> 4
  86. <input type="checkbox" name="mycheck5" value="5"> 5
  87. <br>
  88. <select>
  89. <option value="1">1</option>
  90. <option value="2">2</option>
  91. <option value="3">3</option>
  92. <option value="4">4</option>
  93. </select>
  94. <br>
  95. <textarea name="text">blaaa</textarea>
  96. <br />
  97. <input type="button" name="button" value="Submit"
  98. onclick="javascript:get(this.parentNode);">
  99. <input type="submit" name="button" value="Normal Submit Button">
  100. </form></div>
  101.  
  102. <br><br>
  103. Server-Response:<br>
  104. <span name="myspan" id="myspan"></span>
  105. </body></html>


deze is beter maar niet helemaal goed gok ik maar heb wel iets aangepast wat wel moest 
Offline OceanIdiot - 01/08/2010 12:29 (laatste wijziging 01/08/2010 12:35)
Avatar van OceanIdiot Nieuw lid Okee bedankt voor je snelle reactie 
ik ga er eens even naar kijken + testen!

Edit:
Voor zover ik zie is alleen de POSTrequest uit de get functie gehaald.. of zie ik iets over het hoofd? Ik snap de aanpassing eigenlijk niet, en hij werkt ook niet .

Groet, OceanIdiot 
Offline gnotrgnotr - 01/08/2010 13:14
Avatar van gnotrgnotr Nieuw lid het kan zijn dat hij het niet doet maar ik wel wel 1 ding veranderd van de rest snap ik ook niet veel
Offline OceanIdiot - 01/08/2010 13:46
Avatar van OceanIdiot Nieuw lid Okee, toch bedankt.
Ik als er andere oplossingen zijn hoor ik het graag!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.233s