Wert "A" in Textfeld anzeigen Wert "B" in Datenbank speichern!

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

  • Wert "A" in Textfeld anzeigen Wert "B" in Datenbank speichern!

    Hallo Freunde!

    Wie kann ich es machen, wenn ich auf einen Btn klickt, der Wert "A" im Textfeld angezeigt wird, aber ein anderer Wert z.B. Wert "B" in die DB gespeichert wird.

    Im Moment habe ich es so:

    BTN:
    HTML-Code:
    <img src="biggrin.gif"onclick="insertSmiley('[img]biggrin.gif[/img]')" />
    JS:
    PHP-Code:
    function insertSmiley(smiley)
        {
            var 
    currentText document.getElementById("message");
            var 
    smileyWithPadding " " smiley " ";
            
    currentText.value += smileyWithPadding;
        }

         function 
    auswerten(smile)
         {
            var 
    temp;

             
    temp=document.chatfenster.stream.value;
            
    document.chatfenster.stream.value=temp+smile;
         } 
    PHP:
    PHP-Code:
        function bbcode($message){
            
    $message strip_tags($message);
            
    $message htmlentities($message);

            
    $search  = array('/\[img](.*?)\[\/img\]/is');
            
    $replace = array('<img src="$1"/>');

            return 
    preg_replace($search,$replace,$message);
        } 
    Danke für eure Hilfe!

  • #2
    Zitat von senger1985 Beitrag anzeigen
    Hallo Freunde!
    Wie kann ich es machen, wenn ich auf einen Btn klickt, der Wert "A" im Textfeld angezeigt wird,
    aber ein anderer Wert z.B. Wert "B" in die DB gespeichert wird.
    Hi senger1985,

    in dem du ein assoziatives Array anlegst.
    PHP-Code:
    $my_array = array("A" => "B");
    /*
    * DB-Eintrag Beispiel:
    */
    $query 'insert into tabelle(spalte) values("'.$my_array["A"].'")';
    /*
    * Kontrolle Debugging
    */
    echo $query
    Gruß
    Günni

    Kommentar


    • #3
      Zitat von Guenni61 Beitrag anzeigen
      Hi senger1985,

      in dem du ein assoziatives Array anlegst.
      PHP-Code:
      $my_array = array("A" => "B");
      /*
      * DB-Eintrag Beispiel:
      */
      $query 'insert into tabelle(spalte) values("'.$my_array["A"].'")';
      /*
      * Kontrolle Debugging
      */
      echo $query
      Gruß
      Günni
      Danke für deine Antwort, aber könntest du mir das bitte mal näher erklären?

      Hier noch die insert und das echo:
      PHP-Code:
      $sql 'INSERT INTO `chat_message` (`name`, `message`, `farbe`, `datum`) VALUES (?,?,?,?)'
      PHP-Code:
      <b><?php echo htmlentities($msg->name); ?></b>&nbsp;(<?php echo $msg->datum?>):&nbsp;<i><?php echo bbcode(htmlentities($msg->message)); ?></i></div>

      Kommentar


      • #4
        Zitat von senger1985 Beitrag anzeigen
        Wie kann ich es machen, wenn ich auf einen Btn klickt, der Wert "A" im Textfeld angezeigt wird, aber ein anderer Wert z.B. Wert "B" in die DB gespeichert wird.
        Wenn ich das ist, was ich denke, was Du erreichen möchtest, dann verstehe ich gerade nicht, warum Du den letzten Thread nicht fortgeführt hast. Du speicherst in der DB nichts anderes als die Eingaben, Du benutzt nur für die Vorschau denselben BBCode, wie bei der späteren Ausgabe.

        Kommentar


        • #5
          Hallo Melewo,

          der BBCode soll ja eben nicht in der Text-Eingabe auftauchen, weil ich nicht möchte, das der User weiß, wie das Bild heißt!

          Kommentar


          • #6
            Das verrät doch ein Blick in den Quelltext der gerenderten Seite ohnehin. Doch Du könntest letztendlich auch statt [img]biggrin.gif[/img] oder :-) dann [:-)] verwenden. Hatte nur mal gesehen, dass es bei :-) (oder einer ähnlichen Eingabe) zur Verwechslung mit Satzzeichen kam, doch wenn Du [:-)] verwendest, sollte das eigentlich nicht passieren.

            PHP-Code:
            <img src="biggrin.gif" onclick="insertSmiley('[:-)]')" />

            //  Und dann so ähnlich, alt nicht vergessen, sonst ist es nicht valide, 
            //  auch nicht \ vergessen, damit der Ausdruck nicht als Zeichenklasse gewertet wird.
             
            $search  '/\[:-)\]/';
            $replace '<img src="biggrin.gif" alt="" />'
            Oder Du nummerierst die durch, sollte auch gehen:

            PHP-Code:
            <img src="biggrin.gif" onclick="insertSmiley('[Smiley1]')" />

             
            $search  '/\[Smiley1\]/';
            $replace '<img src="biggrin.gif" alt="" />'
            Zuletzt geändert von Melewo; 19.04.2013, 09:12.

            Kommentar


            • #7
              Hallo,
              wenn ich es so mache:
              PHP-Code:
              $search  = array('/\[:-)\]/is');
                      
              $replace = array('<img src="biggrin.gif"/>');

                      return 
              preg_replace($search,$replace,$message); 
              kommt da leider:
              Warning: preg_replace() [function.preg-replace]: Compilation failed: unmatched parentheses at offset 4 in C:\ordner\htdocs\ordner\ordner\chat.php on line 13

              Und bei:
              PHP-Code:
               return str_replace($search,$replace,$message); 
              gibt er mir nur ": - )" im Chat aus!

              So hatte ich es auch schon mal getestet!

              Kommentar


              • #8
                Werde ich gleich mal testen, war ja bisher nur ein Gedanke.

                Kommentar


                • #9
                  War ein Denkfehler meinerseits, ging von einer [Zeichenklasse] aus, obwohl es ja gerade \[ keine \] sein soll. Also alle Metazeichen maskieren, dann klappt es:

                  PHP-Code:
                  $message "Ein String mit [:-)]";

                  $search  = array('/\[:\-\)\]/');
                  $replace = array('<img src="kleines-bild.jpg" alt="test"/>');

                  $ausgabe preg_replace($search,$replace,$message);  
                  echo 
                  $ausgabe

                  Kommentar


                  • #10
                    Damn... ich rall das nicht, sorry!
                    Ich glaube, ich lass das so!

                    Weil jetzt gibt er mir wieder nur den String aus!

                    Kommentar


                    • #11
                      Du rallst das, es ist nur so, dass alle Metazeichen [ ] ( ) { } | ? + - * ^ $ \ . in einem '/Muster/' wie bei str_replace('/Muster/',$replace,$message) maskiert werden müssen, es sei denn die kommen in einer [Zeichenklasse] vor und verlieren dadurch ihre Wertigkeit als Muster. Doch was aussieht wie eine [Zeichenklassen] soll ja eigentlich keine sein, sondern ein normales Muster und deshalb müssen alle diese Zeichen mit \ maskiert werden, um nicht wie Metazeichen behandelt zu werden.

                      Ein Problem könnte höchstens noch dadurch entstehen, wenn bei in der Textarea oder der Speicherung da noch mehr Maskierungen hinzukommen und es am Ende vielleicht so aussieht wie \\\, was zuweilen passiert und was erst wieder bereinigt werden muss. Wenn Du aber [Smil1], [Smil2] und [Smil3] verwendest und austauschst, ist es doch auch gut.

                      PHP-Code:
                      $message "Ein String mit [Smil1] und mit [Smil3] und mit [Smil2]";

                      $search  = array('/\[Smil1\]/',
                                       
                      '/\[Smil2\]/',
                                       
                      '/\[Smil3\]/');
                                       
                      $replace = array('<img src="kleines-bild.jpg" alt="test"/>',
                                       
                      '<img src="kleines-zwei.jpg" alt="zwei"/>',
                                       
                      '<img src="kleines-drei.jpg" alt="drei"/>');

                      $ausgabe preg_replace($search,$replace,$message);  
                      echo 
                      $ausgabe

                      Kommentar


                      • #12
                        DANKE Melewo!
                        Ich raste aus, jetzt geht es, und sogar mit dem Smiley!!!!!

                        Man muss es nur mal richtig erklärt bekommen und etwas mehr schlafen zwischendurch!

                        Doch nicht /*closed & solved*/

                        Weil er jetzt bei : - ) und bei : - ( das gleiche Smiley auswirft!

                        PHP-Code:
                                $search  = array('/:\-\D/',
                                                 
                        '/:\-\)/',
                                                 
                        '/:\-\o/',
                                                 
                        '/:\-\(/',
                                                
                        '/;\-\)/'
                                                
                        );

                                
                        $replace = array('<img src="biggrin.gif" alt="test"/>',
                                                 
                        '<img src="smile.gif" alt="test"/>',
                                                 
                        '<img src="bigeek.gif" alt="test"/>',
                                                 
                        '<img src="mad.gif" alt="test"/>',
                                                 
                        '<img src="zwink.gif" alt="test"/>'
                                                 
                        ); 
                        Zuletzt geändert von senger1985; 19.04.2013, 16:53.

                        Kommentar


                        • #13
                          Jetzt aber /*CLOSED & SOLVED*/

                          Kommentar

                          Lädt...
                          X