Announcement

Collapse
No announcement yet.

Buttons ansprechen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Buttons ansprechen

    Hallo zusammen,

    mein Problem dreht sich rund um Buttons in ASP.
    Nach mehreren Tagen Verzweiflung und einer Mischung aus Wut und Ratlosigkeit frage ich nun hier um Hilfe.
    Mein Problem ist folgendes:
    Ich habe auf einer Seite 5 Dropdown-Menüs welche von einem 6. (Name: cbxSelectAll) per Buttons gefüllt werden. Nun möchte ich aber nicht mit jedem Button (übrigens momentan alles Submit-Buttons) jedes Dropdown-Feld füllen können. Heißt ich bräuchte eine Art onClick() Funktion in welcher ich meine Aktion ausführen kann. Mir würde auch etwas wie "If Button.clicked = True" reichen. Egal was, hauptsache es klappt.
    Im vorraus noch eine wichtige Info: die Lösung darf nicht mit Javascript erfolgen.
    Code:
            <!-- BEGINN Zeile Dropdown 1 -->
            <tr>
              <td>Dropdown 1:</td>
              <td>
                <select name="cbxDropdown1" id="cbx">
                  <option selected></option>
                </select>
                <input type="submit" name="btnDelItemDropdown1" value="-">
                <input type="submit" name="btnAdditemDropdown1" value="<<">
              </td>
              <td rowspan="5">
                  <select name="cbxSelectAll" id="cbx" size="7" multiple>
                    <%
                      'öffne Datenbankverbindung
                      Call OpenDatabaseConnection()   
                      'lese Daten aus der Datenbank
                      Call ReadAll()
                      'schließe Verbindung
                      Call CloseDatabaseConnection()
                    %>
                  </select>
                  <input type="submit" name="addAll" value="+">
              </td>
            </tr>
            <!-- ENDE Zeile Dropdown1 -->
            <!-- BEGINN Zeile Dropdown2 -->
            <tr>
              <td>Dropdown 2:</td>
              <td>
                <select name="cbxDropdown2" id="cbx">
                  <option selected></option>
                </select>
                <input type="submit" name="btnDelItemDropdown2" value="-">
                <input type="submit" name="btnAdditemDropdown2" value="<<">
              </td>
            </tr>
            <!-- ENDE Zeile Dropdown2 -->
            <!-- BEGINN Zeile Dropdown3 -->
            <tr>
              <td>Dropdown 3:</td>
              <td>
                <select name="cbxDropdown3" id="cbx">
                  <option selected></option>
                </select>
                <input type="submit" name="btnDelItemDropdown3" value="-">
                <input type="submit" name="btnAdditemDropdown3" value="<<">
              </td>
            </tr>
            <!-- ENDE Zeile Dropdown3 -->
            <!-- BEGINN Zeile Dropdown4 -->
            <tr>
              <td>Dropdown 4:</td>
              <td>
                <select name="cbxDropdown4" id="cbx">
                  <option selected></option>
                </select>
                <input type="submit" name="btnDelItemDropdown4" value="-">
                <input type="submit" name="btnAdditemDropdown4" value="<<">
              </td>
            </tr>
            <!-- ENDE Zeile Dropdown4 -->
            <!-- BEGINN Zeile Dropdown5 -->
            <tr>
              <td>Dropdown 5:</td>
              <td>
                <select name="cbxDropdown5" id="cbx">
                  <option selected></option>
                </select>
                <input type="submit" name="btnDelItemDropdown5" value="-">
                <input type="submit" name="btnAdditemDropdown5" value="<<">
              </td>
            </tr>
            <!-- ENDE Zeile Dropdown5 -->
    Nun bin ich gespannt ob mir jemand die totale Erleuchtung geben kann.

    Tschüssi Allu

  • #2
    Mal so grundsätzlich:
    Egal wie du serverseitig deine Seite erstellst, PHP, JAVA, ASP u.a.; die Seite wird duch die serverseitige Sprache erstellt und an den Client gesandt. Damit ist dann Ende mit dem serverseitigen Zugriff auf die Seite. D.h. die auf dem Server genutzten Sprache haben keinen Zugriff mehr auf die Seite.
    Clientseitig kann dann Javascript eingesetzt werden um aktuell Änderungen an der Seite vorzunehmen oder AJAX (also Javascript) um einen asynchronen Request zu Server zu senden und dann halt darauf zu reagieren.
    Ansonsten können Änderungen ohne Javascript nur durch einen neuen Request an den Server verarbeitet werden.
    Also wirst du bei deinen gewünschten Änderungen an der Server senden müssen und dann die Seite neu aufbauen müssen
    Christian

    Comment


    • #3
      Hallo Christian,
      Danke erst einmal für die Antwort.
      Momentan mache ich ja auch nichts anderes. Ich hab schon eine schweißtreibende Stirn gehabt bei jedem Knopfdruck mein Formular immer wieder mit den gespeicherten Daten neu zu füllen, aber es funktioniert.
      Dass die Sprache serverseitig ist ist mir auch bekannt. Aber selbst bei serverseitigen Sprachen muss es doch möglich sein eine Aktion einem Button zuzuordnen und diese dann zum Server zu schicken? Natürlich sind es im Endeffekt nur Änderungen auf Clientebene, die ich etwas umständlicher bearbeite. Aber möglich ist ja alles^^

      Comment


      • #4
        Aber selbst bei serverseitigen Sprachen muss es doch möglich sein eine Aktion einem Button zuzuordnen und diese dann zum Server zu schicken?
        Das HTTP-Protokoll kennt keine Aktionen.
        Beim Druck auf einem Button wird dieser (und die anderen Formularfelder) übertragen. Serverseitig kannst du den Button (Name) auswerten und dann deine Aktion starten. Weiterhin ist zu beachten, dass HTTP zustandslos ist.

        Aber möglich ist ja alles^^
        Beamen?
        Christian

        Comment


        • #5
          Originally posted by Christian Marquardt
          Serverseitig kannst du den Button (Name) auswerten und dann deine Aktion starten.
          Genau das ist schon fast die Antwort auf meine Frage. :-D
          Die Frage ist jetzt nur wie genau ich das auswerten kann.
          Per Request.Form( "Textfeld" ) erreiche ich den Inhalt eines Textfeldes oder das Value eines Buttons. Sobald die Values aller Buttons einzigartig auf einer Seite sind erreiche ich auch so die Buttons. Bei mir ist nur (wie schon erwähnt) das Value mindestens 5 Mal vorhanden (z.B. "<<" oder "-") und die Namen sind unterschiedlich.
          Wie genau erreiche ich nun aber den Namen eines Buttons?
          Mit folgendem Beispiel, nur eben anstatt Values die Namen unterschiedlich, würde ich es sogar verstehen:
          http://www.chami.com/tips/internet/042599i.html
          Originally posted by Christian Marquardt
          Aber möglich ist ja alles^^
          Beamen?
          Na wenn's sonst nichts ist: http://www.wissenschaft.de/wissensch...ws/242059.html

          Tschüssi Allu

          PS: Ich hoffe in diesem Forum darf ich Links auf fremde Seiten setzen.

          Comment


          • #6
            Zu unterscheiden ist der Value und der Name. Angesprochen wird der Name
            Christian

            Comment


            • #7
              Durch eine LKW-Ladung Hirnschmalz und wertvolle Tipps von einem Arbeitskollegen habe ich die Lösung nun gefunden.
              Lösen lässt es sich wie folgt:
              Jeder Button besitzt einen Value, sofern es gesetzt wurde. Solang ein Button nicht gedrückt wurde ist also auch kein Value im Request.Form( "Button" ). Sobald aber ein Button gedrückt wurde wird der Value übergeben. Nun ist nur ein einziger Value auf der gesamten Seite gesetzt (klar, man kann schlecht 2 Buttons gleichzeitig drücken ).
              Für diese Lösung nutze ich folgenden Code (aufbauend auf meinen 1. Beitrag):
              Code:
              <%
                'prüfen welcher Button gedrückt wurde
                If btnDelItemDropdown1 <> "" Then
                  'Aktion für Button btnDelItemDropdown1
                ElseIf btnAddItemDropdown1 <> "" Then
                  'Aktion für Button btnAddItemDropdown1
                ElseIf btnDelItemDropdown2 <> "" Then
                  'Aktion für Button btnDelItemDropdown2
                ElseIf btnAddItemDropdown2 <> "" Then
                  'Aktion für Button btnAddItemDropdown2
                ElseIf btnDelItemDropdown3 <> "" Then
                  'Aktion für Button btnDelItemDropdown3
                ElseIf btnAddItemDropdown3 <> "" Then
                  'Aktion für Button btnAddItemDropdown3
                ElseIf btnDelItemDropdown4 <> "" Then
                  'Aktion für Button btnDelItemDropdown4
                ElseIf btnAddItemDropdown4 <> "" Then
                  'Aktion für Button btnAddItemDropdown4
                ElseIf btnDelItemDropdown5 <> "" Then
                  'Aktion für Button btnDelItemDropdown5
                ElseIf btnAddItemDropdown5 <> "" Then
                  'Aktion für Button btnAddItemDropdown5
                End If
              %>
              Diese ist die mir zur Zeit als einzig bekannte Methode jeden einzelnen Button auf einer Seite direkt anzusteuern.

              Damit ist meine Frage erledigt, der Thread kann bei Bedarf geschlossen werden.

              Tschüssi Allu

              Comment

              Working...
              X