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

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

  • 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
    Originally posted by senger1985 View Post
    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

    Comment


    • #3
      Originally posted by Guenni61 View Post
      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>

      Comment


      • #4
        Originally posted by senger1985 View Post
        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.

        Comment


        • #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!

          Comment


          • #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="" />'
            Last edited by Melewo; 19-04-2013, 08:12.

            Comment


            • #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!

              Comment


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

                Comment


                • #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

                  Comment


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

                    Weil jetzt gibt er mir wieder nur den String aus!

                    Comment


                    • #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

                      Comment


                      • #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"/>'
                                                 
                        ); 
                        Last edited by senger1985; 19-04-2013, 15:53.

                        Comment


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

                          Comment

                          Working...
                          X