Sandy: mit Onclick-event Werte in MySQL-DB schreiben? wie gehts?

Guten Morgen!

Ich habe ein ASP-File, und eine kleine MySQL-Datenbank.
Nun sind auf der ASP-Seite eine Liste von Personen, und neben jeder Person 2 Radiobuttons.
Nun möchte ich wenn auf einen bestimmten Radiobutton (also jede Person kann entweder Radiobutton 1 oder 2 anklicken) geklickt wird, entweder den Wert 1 oder den Wert 0 in die DB schreiben.

Mit dem OnClick-event des Radiobuttons kann man das ja nicht direkt machen, da dies client-seitig ist.
Kann man da etwas mit OnClick=Submit() machen?
Wenn ja, wie? Submit auf ein neues ASP-File, welches dann die Werte in die DB schreibt?
Wenn man das nur so machen könnte, wäre das Problem, dass ich zu jeder Person ein eigenes File brauche, da es in der DB für jede Person eine eigene Zeile gibt.

Ich danke (und hoffe zuerst mal:-)), viele Grüsse,
Heiner

  1. Hi Heiner

    Mit der Hilfe von JavaScript sollte dies kein Problem sein. Als Beispiel poste ich dir hier einen Codeausschnitt aus einer per ASP generierten Seite:

    ---------------->8 *SNIP* 8<------------------
     <form name="list" action="showlist.asp" method="post">
      <p>Netzwerktyp: <select name="ntyp" onchange="document.list.submit()">
         <option value="0" selected>Ethernet</option>
         <option value="1">Token-Ring</option>
       </select>
      </p>
     </form>
    ---------------->8 *SNAP* 8<------------------

    Mit deinen Radio-Buttons sollte dies genau gleich funktionieren. Damit du jedoch nicht für jeden Datensatz ein eigenes Skript schreiben musst, kannst du an das ausführende Skript eine Datensatz-ID als Parameter übergeben. Ich probier mal so etwas hinzukrizeln:

    <form name="geschlecht" action="tuwas.asp?id=1234" method="post">
     <input type="radio" name="Wert" value="1" checked onchange="document.list.submit()">
     <input type="radio" name="Wert" value="0">
    </form>

    Ob das onchange jetzt am richtigen Ort ist kann ich dir nicht zu 100% sagen. Ich würde einmal versuchen, dieses immer mit dem gecheckeden Radiobutton zu kombinieren.

    MfG

    Tom2

    --
    "Experience is something you don't get until just after you need it."
     by Steven Wright
    1. Hallo Tom II,

      oder auch in einem Formular mit

      <input type="radio" name="Wert" value="3787274:1">

      worin 3787274 die Datensatz id ist.

      Gruß

      Eidgenosse

    2. Hallo,

      mit js hat das nichts zu tun...

      du brauchst natürlich nicht für jede person eine eigene Datei...

      du zielst immer auf die selbe... die aktion richtet sich nach den übergebenen Parametern...

      Die Frage kommt mir verdammt verdächtig vor...
      Bist du die selbe Person wie gestern(?)? wenn nicht, dann such mal etwas weiter unten zu dem Thema. wenn ja, ich glaube vernünftige antworten waren dabei... noch ein link:
      http://www.jakober.ch/asp/asp_form.php

      Odium

      1. Hi Odium

        mit js hat das nichts zu tun...

        Das Schreiben in die DB hat nichts mit JS zu tun, aber ich bezog mich auf das Submitten, das auch ein Problem zu sein schien.

        MfG

        Tom2

        --
        "Experience is something you don't get until just after you need it."
         by Steven Wright
      2. Die Frage kommt mir verdammt verdächtig vor...
        Bist du die selbe Person wie gestern(?)?

        Na, klar, er hat nämlich das erste Posting in diesem Thread versehentlich mit Heiner unterschrieben!

        Ich finde es ziemlich bescheuert, wenn sich Männer als Frauen ausgeben, wohl, wie Romy unlängst meinte, weil sie sich dann etwas dümmer geben dürfen.

        Also ich helfe meistens auch Männern geduldig und ohne Vorurteile :-)

        wenn nicht, dann such mal etwas weiter unten zu dem Thema. wenn ja, ich glaube vernünftige antworten waren dabei... noch ein link:
        http://www.jakober.ch/asp/asp_form.php

        Odium

        1. Hi Susanne

          Na, klar, er hat nämlich das erste Posting in diesem Thread versehentlich mit Heiner unterschrieben!

          Vielen Dank für den Hinweis: Ich hatte schon lange den Verdacht, dass sich einige Jungs hier als Mädchen ausgeben, da wir langsam etwas viele Sandies hier haben. ;-)

          Ich finde es ziemlich bescheuert, wenn sich Männer als Frauen ausgeben, wohl, wie Romy unlängst meinte, weil sie sich dann etwas dümmer geben dürfen.

          Wer aus solchen Gründen das Geschlecht seines Pseudonyms ändert disqualifiziert sich selbst. Mir sind die Frauen, die ich hier 'kenne', immer nur positiv aufgefallen.

          Mf*G*

          Tom2

          --
          "Experience is something you don't get until just after you need it."
           by Steven Wright
    3. DAnke!

      Also so wie ich das verstanden habe, kann ich es ziemlich ähnlich wie im folgenden code-Abschnitt machen,nö?

      <form name="geschlecht" action="tuwas.asp?id=1234" method="post">
      <input type="radio" name="Wert" value="1" checked onchange="document.list.submit()">
      <input type="radio" name="Wert" value="0">
      </form>

      Damit du jedoch nicht für jeden Datensatz ein eigenes Skript
      schreiben musst, kannst du an das ausführende Skript eine
      Datensatz-ID als Parameter übergeben.

      Wie kann ich jetzt die ID übergenben? Wie kann ich im ausführenden File (das "gesubmittet" wird) die Stellen angeben, wo die Parameter hinzeigen? Und kann ich das mit einem ASP-File machen? Also dort dann die SQL-Befehle ausführen?

      tut mir leid für die dummen Fragen, ich bin Anfängerin und bleibe es vermutlich auch ;-)

      danke für deine Geduld,
      Griitz

      MfG

      Tom2

      1. Hi

        Also so wie ich das verstanden habe, kann ich es ziemlich ähnlich wie im folgenden code-Abschnitt machen,nö?

        Ehm, ja... Der HTML-Code, den du mit deinem ASP-File generierst, kann in etwa so aussehen.

        <form name="geschlecht" action="tuwas.asp?id=1234" method="post">
        <input type="radio" name="Wert" value="1" checked onchange="document.list.submit()">
        <input type="radio" name="Wert" value="0">
        </form>

        Damit du jedoch nicht für jeden Datensatz ein eigenes Skript
        schreiben musst, kannst du an das ausführende Skript eine
        Datensatz-ID als Parameter übergeben.

        Wie kann ich jetzt die ID übergenben?

        Mein Landsmann, der Eidgenosse, hat die viel bessere Lösung als ich parat. Du kannst das Formular folgendermassen einleiten:

        <form name="MeinFormular" action="tuewas.asp" method="post">

        Dies musst du nur einmal in der ganzen Seite machen. Das 'Zeugs' nach dem Fragezeichen in meinem vorherigen Beispiel war ein URL-Parameter. SelfHTML hilft dir da weiter.

        Danach musst du für jeden Radiobutten folgenden Code per ASP generieren:

        ...Datensatz 123521
         <input type="radio" name="MeineWerte" value="123521:0">Null
         <input type="radio" name="MeineWerte" value="123521:1">Eins
         ...Datensatz 123522
         <input type="radio" name="MeineWerte" value="123522:0">Null
         <input type="radio" name="MeineWerte" value="123522:1">Eins
         ...Datensatz 123523
         <input type="radio" name="MeineWerte" value="123523:0">Null
         <input type="radio" name="MeineWerte" value="123523:1">Eins

        Nun musst du noch an der richtigen stelle den onchange-Event einfügen, um die Änderungen direkt auszuführen und das Formular mit </form> abschliessen.

        Im ASP-File tuewas.asp kannst du den übergebenen String auslesen:

        strData = Request.Form("MeineWerte")

        In strData steht nun zum Beispiel "123523:1". Der Teil vor dem Doppelpunkt ist die ID für den Datensatz, der Rest ist dein Wert, den du in die Datenbank schreiben willst.

        tut mir leid für die dummen Fragen, ich bin Anfängerin und bleibe es vermutlich auch ;-)

        Deine Fragen sind nicht dumm. Du hast dir nur eine etwas schwierigere Aufgabe für den Anfang ausgesucht. Bald aber wirst du auch diese bewältigen können. Schau mal auf http://www.aspheute.com vorbei und lies dort ein paar Artikel, die dich interessieren.

        MfG

        Tom2

        --
        "Experience is something you don't get until just after you need it."
         by Steven Wright