Confirm mit Eingabefeld

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Confirm mit Eingabefeld

    Hallo!

    Ich habe innerhalb eines Spiels einen Shop, indem man durch klicken auf eine Sache diese kaufen kann. Dabei kommt das confirm-Dialogfenster:
    PHP-Code:
    <a href='usershop.pro.php?game=1&user=".$user."&id=".$array[id]."&price=".$array[price]."' 
        
    onClick=\"if ( !confirm ('Möchtest du ".$array[item_name]." für ".$array[price]." ".$pointsVar." kaufen?') ) { return false; }\">
        <img src="
    .$base_url."/images/user_images/opg_".$game."/items/item_".$array[item_id].".gif width=\"50\"></A> 
    Ist es möglich, dass nachdem Klick ein Dialogfenster erscheint, indem man die Anzahl eingeben kann und dann auf OK drückt?

  • #2
    st es möglich, dass nachdem Klick ein Dialogfenster erscheint, indem man die Anzahl eingeben kann und dann auf OK drückt?
    Wieso sollte das nicht gehen? Bau dir dafür aber besser gleich eine JS Funktion, die du dann beim Event des Elements aufrufst.
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Ja das ist möglich. Naheliegend wäre
      onclick="if (!confirm(...)) ... else { var anzahl = prompt(...); ... }"

      Kommentar


      • #4
        Danke für die Antwort, das ist es, was ich brauche.

        Aber die Variable wird nicht per POST mitübertragen, oder? Sie ist flüchtig und dient eigentlich der sofortigen Überprüfung, wenn ich das richtig verstanden habe.

        PHP-Code:
        echo "<script type=\"text/javascript\">
                    function disp_prompt(){
                          var anzahl_items=prompt(\"Wie viele willst du kaufen?\",\"\")
                      }
                </script><td><div align=center>
            <a href='usershop.pro.php?game=1&user="
        .$user."&id=".$array[id]."&price=".$array[price]."' 
            onClick=\"disp_prompt()\">
            <img src="
        .$base_url."/images/user_images/opg_".$game."/items/item_".$array[item_id].".gif width=\"50\"></A> 
        Wie kann ich die Variable mitschicken?

        Kommentar


        • #5
          document.getElemenById('myHiddenField').value = anzahl

          Kommentar


          • #6
            dieses Beispiel leuchtet mir ein:

            PHP-Code:
            <html><head><title>Test</title>
            <
            style type="text/css">
            .
            normal font-style:normal }
            </
            style>
            <
            script type="text/javascript">
            function 
            Ausrichten (wie) {
              
            document.getElementById("unentschlossen").align wie;
            }
            </
            script>
            </
            head><body>
            <
            h1 id="unentschlossen">Wo gehöre ich eigentlich hin?</h1>
            <
            a href="javascript:Ausrichten('left')">links?</a><br>
            <
            a href="javascript:Ausrichten('center')">zentriert?</a><br>
            <
            a href="javascript:Ausrichten('right')">rechts?</a><br>
            </
            body></html
            Aber wie verwende ich das in meinem Fall?

            PHP-Code:
            echo "<script type=\"text/javascript\">
                        function disp_prompt(){
                              var anzahl_items=prompt(\"Wie viele willst du kaufen?\",\"\")
            document.getElemenById('myHiddenField').value = anzahl_items
                          }
                    </script><td><div align=center>
                <a href='usershop.pro.php?game=1&user="
            .$user."&id=".$array[id]."&price=".$array[price]."' 
                onClick=\"disp_prompt()\">
                <img src="
            .$base_url."/images/user_images/opg_".$game."/items/item_".$array[item_id].".gif width=\"50\"></A> 
            Ich check das leider noch nicht ganz...das da oben klappt nicht. Bitte um eine Erläuterung

            Kommentar


            • #7
              Das Beispiel von onemorenerd bezog sich auf ein Formular mit einem versteckten Feld. Wenn du die URL des Links ändern willst kannst du entweder dem Link eine Id geben oder soweit ich weiß auch mit this darauf zugreifen. Sobald du ein Handle des Links hast hängst du den Wert entsprechend an href an.
              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

              Kommentar


              • #8
                Tut mir leid, ich raff das echt nicht. Wie kann ich die beiden JS-Funktionen so kombinieren, dass der Link die eingegebene Variable enthält?

                Kommentar


                • #9
                  @alex
                  Zuerst einmal würde ich das Eingabefeld in eine Schleife packen
                  PHP-Code:
                  var anzahl;
                  while(
                  is_NaN(anzahl) && anzahl 0){
                    
                  anzahl prompt('Wieviele Stücke willste denn?');
                  }
                  //jetzt brauchst du im Code nur noch ein Element mit der id link
                  document.getElementById('link').innerHTML '<a href="seite.html?var='+anzahl+'">Linktext</a>'
                  So in der Art...

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    Hallo tobi.

                    ich verstehe zwar was gemeint ist, nur hab ich keine Ahnung von JS und kann mich daher gar nicht in dieser Sprache ausdrücken.

                    Ich hab mal folgendes versucht

                    PHP-Code:
                    echo "<script type=\"text/javascript\">
                                function disp_prompt(){
                                      var anzahl;
                                    while(is_NaN(anzahl) && anzahl == 0){
                                          anzahl = prompt('Wieviele Stücke willste denn?');
                                    }
                                    
                                    document.getElementById('link').innerHTML = '<a href='usershop2.pro.php?&anzahl='+anzahl+''>
                     <img src="
                    .$base_url."/images/image_source.gif".gif width=\"50\"></a>';
                                  }
                            </script><td><div align=center>
                        <a href=\"javascript:disp_prompt()\"><img src="
                    .$base_url."/images/image.gif width=\"50\"></A> 
                    Aber es kommt ein Fehler in der Fehlerkonsole, dessen Ursache ich nicht ausfindig machen kann. Und das Konzept scheint mir nicht sehr richtig zu sein. Beim Klick passiert nichts.

                    Fehler: missing ; before statement
                    Quelldatei: http://www.domäne.de/usershop2.php?u...lsseele&game=1
                    Zeile: 469, Spalte: 58
                    Quelltext:
                    document.getElementById('link').innerHTML = '<a href='usershop2.pro.php?game=1&user=engelsseele&id=102647&price=60&anzahl='+anzahl+''><img src=http://www.vpet.de/images/user_images/opg_1/items/item_30950.gif width="50"></a>';

                    Bidde nochmal um Hilfe

                    Kommentar


                    • #11
                      Aber es kommt ein Fehler in der Fehlerkonsole, dessen Ursache ich nicht ausfindig machen kann. Und das Konzept scheint mir nicht sehr richtig zu sein. Beim Klick passiert nichts.
                      Dein Problem sind die verschiedenen Anführungszeichen. Am besten gehts du die nochmal Stück für Stück durch.
                      document.getElementById('link').innerHTML = '<a href="seite.html?var='+anzahl+'">Linktext</a>';
                      Komm doch nicht immer gleich mit der Keule. Statt innerHTML würde href völlig ausreichen.
                      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                      Kommentar


                      • #12
                        ich bin der Meinung die Hochkommas stimmen. In der Quellcodeanzeige steht folgendes:

                        document.getElementById('link').href = "<a href=usershop2.pro.php?game=1&user=engelsseele&id=102670&price=85&anzahl='+anzahl+'>
                        <img src=http://www.vpet.de/images/user_images/opg_1/items/item_30987.gif width=50></a>";

                        Kommentar


                        • #13
                          ich bin der Meinung die Hochkommas stimmen. In der Quellcodeanzeige steht folgendes:
                          Das ist was anderes als da gerade noch stand. Post nochmal den gesamten tatsächlichen Javascriptcode.
                          document.getElementById('link').href = ...
                          Wenn schon benutzen dann bitte auch verstehen! href verändert nur den Inhalt des Linkziels, folgender Quellcode würde also reichen (die id für den Linktag musst du natürlich noch vergeben):
                          Code:
                          document.getElementById('link').href = 'usershop2.pro.php? ... &anzahl='+anzahl;
                          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                          Kommentar


                          • #14
                            Original geschrieben von tontechniker
                            Das ist was anderes als da gerade noch stand. Post nochmal den gesamten tatsächlichen Javascriptcode.
                            ich habe auch versucht die Sache anzupassen.

                            Wenn schon benutzen dann bitte auch verstehen!
                            Darum geht es ja die ganze Zeit, ich habe noch nie JS eingesetzt und hab so meine Schwierigkeiten damit.
                            Ich bin jetzt soweit, dass kein Fehler mehr angezeigt wird. href ändert also den Link und übergibt ihn unten an die Stelle, wo die JS-Funktion aufgerufen wird?
                            Wie vergebe ich die ID, damit das auch so passiert?

                            PHP-Code:
                            <script type=\"text/javascript\">
                                        function disp_prompt(){
                                              var anzahl;
                                            while(is_NaN(anzahl) && anzahl == 0){
                                                  anzahl = prompt('Wieviele Stücke willste denn?');
                                            }
                                            
                                            document.getElementById('link').href = 'usershop2.pro.php?game=1&user="
                            .$user."&id=".$array[id]."&price=".$array[price]."&anzahl='+anzahl;
                                          }
                                    </script><td><div align=center>
                                <a href=\"javascript:disp_prompt()\"><img src="
                            .$base_url."/images/user_images/opg_".$game."/items/item_".$array[item_id].".gif width=\"50\"></A> 

                            Kommentar


                            • #15
                              Aaalso, ich bin jetzt ein Stückchen weiter gekommen. Folgender Code, den ich mir zusammengefrikelt habe:

                              PHP-Code:
                              echo "<script type=\"text/javascript\">
                                          function disp_prompt(adresse){
                                                var anzahl;
                                              anzahl = prompt('Wieviele Stücke willste denn?');
                                              document.getElementById('link').href = 'usershop2.pro.php?game=1&user="
                              .$user."&id=".$array[id]."&price=".$array[price]."&anzahl='+anzahl;
                                            }
                                      </script><td><div align=center>
                                  <a id=\"link\" href=\"javascript:disp_prompt()\"><img src="
                              .$base_url."/images/user_images/opg_".$game."/items/item_".$array[item_id].".gif width=\"50\"></A> 
                              Also nach dem Klick werde ich zur Eingabe aufgefordert...super.

                              Danach verbleibe ich aber auf der selben Seite, und wenn ich auf das gleiche Element klicke, komme ich dann auf die verlinkte Seite.

                              Aber ich muss doch sofort auf die andere Seite!

                              Kommentar

                              Lädt...
                              X