getElementById, Checkbox und AJAX Aufruf

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • getElementById, Checkbox und AJAX Aufruf

    Hallo liebe gemeinde,

    ich habe da ein kleines Problem, wie das Script unten zeigt möchte ich z.B. eine von drei checkboxen anklicken, z.b. wenn ich die zweite checkbox abhake soll eine ajax aktion quasi die ID zwei für Birne in eine Datenbank eintragen (Warenkorbfunktion sozusagen). Wie kann ich das oben im JS Teil ändern, dass es funktioniert, ich schätze mal bei Zeile 23 id = document.getElementById('item['+id+']').value; stimmt was nicht:

    HTML-Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    5. <title>Unbenanntes Dokument</title>
    6. <script type="text/Javascript">
    7. <!--
    8. function sendRequest() {
    9. try
    10. {
    11. req = window.XMLHttpRequest?new XMLHttpRequest():
    12. new ActiveXObject("Microsoft.XMLHTTP");
    13. }
    14. catch (e)
    15. {
    16. //Kein AJAX Support
    17. }
    18. req.onreadystatechange = handleResponse;
    19. id = document.getElementById('item['+id+']').value;
    20. req.open('post', 'func.php?s='+ id);
    21. req.send(null);
    22. }
    23. function handleResponse() {
    24. if ((req.readyState == 4) && (req.status == 200))
    25. {
    26. document.getElementById('obst').innerHTML = req.responseText;
    27. }
    28. }
    29. //-->
    30. </script>
    31. </head>
    32. <body>
    33. <table width="100%" border="0" cellspacing="0" cellpadding="0">
    34. <form id="form1" name="form1" method="post" action="">
    35. <tr>
    36. <td width="20"><input type="checkbox" name="item[1]" id="item[1]" onclick="if(this.checked==true){sendRequest();}else{sendRequest2();}" /></td>
    37. <td>Apfel</td>
    38. </tr>
    39. <tr>
    40. <td width="20"><input type="checkbox" name="item[2]" id="item[2]" onclick="if(this.checked==true){sendRequest();}else{sendRequest2();}" /></td>
    41. <td>Birne</td>
    42. </tr>
    43. <tr>
    44. <td width="20"><input type="checkbox" name="item[3]" id="item[3]" onclick="if(this.checked==true){sendRequest();}else{sendRequest2();}" /></td>
    45. <td>Orange</td>
    46. </tr>
    47. </form>
    48. </table>
    49. <div id="obst"></div>
    50. </body>
    51. </html>
    Alles anzeigen


    Bitte um Hilfe

    MfG

    kingluui
    Man muss nicht wissen wie es geht, man muss nur wissen wo es steht! Natürlich bei easy-coding 8o de
  • Danke für Deine schnelle Antwort,

    habe den checkboxen nun values gegeben, das ist ja auch das mindeste was die brauchen *grml* und auch Deine Tipps beherzigt, aber die Funktion wird doch onclick aufgerufen if(this.checked==true){sendRequest();}.

    Die Fehlermeldung vom Browser lautet:

    'id' ist undefiniert Hier nochmal die aktuelle Version:

    HTML-Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    5. <title>Unbenanntes Dokument</title>
    6. <script type="text/Javascript">
    7. <!--
    8. function sendRequest() {
    9. try
    10. {
    11. req = window.XMLHttpRequest?new XMLHttpRequest():
    12. new ActiveXObject("Microsoft.XMLHTTP");
    13. }
    14. catch (e)
    15. {
    16. //Kein AJAX Support
    17. }
    18. req.onreadystatechange = handleResponse;
    19. id = document.getElementById('item['+id+']').value;
    20. req.open('get', 'func.php?s='+ id);
    21. req.send(null);
    22. }
    23. function handleResponse() {
    24. if ((req.readyState == 4) && (req.status == 200))
    25. {
    26. document.getElementById('obst').innerHTML = req.responseText;
    27. }
    28. }
    29. //-->
    30. </script>
    31. </head>
    32. <body>
    33. <table width="100%" border="0" cellspacing="0" cellpadding="0">
    34. <form id="form1" name="form1" method="post" action="">
    35. <tr>
    36. <td width="20"><input name="item1" type="checkbox" id="item[1]" onclick="if(this.checked==true){sendRequest();}else{sendRequest2();}" value="1" /></td>
    37. <td>Apfel</td>
    38. </tr>
    39. <tr>
    40. <td width="20"><input name="item2" type="checkbox" id="item[2]" onclick="if(this.checked==true){sendRequest();}else{sendRequest2();}" value="2" /></td>
    41. <td>Birne</td>
    42. </tr>
    43. <tr>
    44. <td width="20"><input name="item3" type="checkbox" id="item[3]" onclick="if(this.checked==true){sendRequest();}else{sendRequest2();}" value="3" /></td>
    45. <td>Orange</td>
    46. </tr>
    47. </form>
    48. </table>
    49. <div id="obst"></div>
    50. </body>
    51. </html>
    Alles anzeigen


    Kannste was mit der Fehlermeldung anfangen?
    Man muss nicht wissen wie es geht, man muss nur wissen wo es steht! Natürlich bei easy-coding 8o de