[PHP] Submit ohne zu laden [PHP+JAVASCRIPT]

Dieses Thema im Forum "Webentwicklung" wurde erstellt von SoulOfRussia, 24. November 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 24. November 2010
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    bb2html

    UPDATE: SIEHE EINTRAG NR. 15


    Hab wiedermal ein sehr spezielles Problem:

    Hier schonmal der Code:
    HTML:
    
    <script>
    function regist(val)
    {
     document.getElementById('feld').value = val
     document.getElementById('form').submit()
    }
    </script>
    
    <?PHP 
    ###############
    ##############ABFRAGEN, DATENBANKZEUGS etc. - FUNKTIONIERT ALLES
    ###############
    echo '<form method="POST" id="form">';
    ##################HIER STEHT DAS GANZ FORMULAR
    
    echo '<input type="hidden" name="submit" value="" id="feld" />';
    echo "<a href='javascript:regist('submit') style='background:#999; font:20px;'>REGISTRIEREN</a></form>";
    echo '<p>Mit der Anmeldung/Registrierung akzeptierst Du blablabla... '; 
    
    }
    else{
     echo '<br><br>Du bist eingeloggt! ';
     #print_r($_SESSION['user_nickname']);
     #echo '!';
     #echo '<br><a href="logout.php">Logout</a>';
    } ?>
    
    <?php #include("footer.php"); ?>
    

    Das Problem:
    capturese.jpg
    {img-src: //img522.imageshack.us/img522/8968/capturese.jpg}

    (Ja ich weiß, da isn Rechtschreibfehler..)



    Und so soll es IN DER BOX aussehen!
    capture2ov.jpg
    {img-src: //img696.imageshack.us/img696/3930/capture2ov.jpg}


    D.h. Wenn man auf "Registrieren" klickt, dann passiert nichts. Wenn man
    "<a href='javascript:regist('submit') style='background:#999; font:20px;'>REGISTRIEREN</a>"
    mit einem einen <input type="submit" blabla> Registrieren Button ersezt, dann refresht der ja und somit gibt er dem Server das Zeichen, dass der PHP Code abgearbeitet werden soll.
    Das will ich mit JavaScript beheben.. aber wie?
    Der soll den Code abarbeiten, sobald man auf den Link "REGISTRIEREN" klickt.

    Was mach ich verkehrt?

    Danke im Vorraus


    edit:

    hab mal anstatt den Button / Link eine Checkbox gefunden, die den PHP Code ausführen soll...

    PHP:
    echo  "<input type='checkbox' name='submit' onclick='this.form.submit();'>"
    echo 
    "Ich habe die " ;
    echo 
    "<a target='neu' onclick=\"window.open(BLABLA)\"href='agb.html'>AGB</a>s" ;
    echo 
    " gelesen und akzeptiere diese.</a></form>" ;
    klappt jedoch auch nicht...
    wird this.form.submit(); überhaupt "alleine" ausgeführt?
     
  2. 24. November 2010
    AW: - Submit ohne zu laden [+PHP]

    Es macht keinen Unterschied ob du ein Submit-Button benutzt oder per Javascript submit(); ausführst, refreshed wird das Script immer.

    Wenn du nachladen willst ohne Seitenrefresh dann solltest du mit Ajax arbeiten.
    Entweder du holst dir ein JS-Framework in dem das integriert ist oder du googelst dich mal durch.

    Inhalte mit Ajax& PHP nachladen
     
  3. 24. November 2010
    AW: - Submit ohne zu laden [+PHP]

    gibts bei AJAX nicht sowas, wo man z.B. eingibt

    <input txpe="checkbox" onclick="rufefunktionauf()." name="bla">


    ...
    rufefunktionauf( LADE DAS UND DAS NACH )
    ...

    ??

    Nur so mal als veanschaulichung ^^ ich hoffe ihr versteht das xD
     
  4. 24. November 2010
    AW: - Submit ohne zu laden [+PHP]

    Ajax ruft ein PHP Dokument für dich auf, dabei kannst du Parameter mitschicken z.B. dein Formularrinhalt.

    Und alles was du im PHP Dokument ausgibst wird an deine JS funktion zurückgegeben.


    Schau dir halt das Tutorial an.
    Dein Script ändert sich in dem Sinn nicht es wird ausgeführt wie normal nur, dass die Response ohne Refresh ausgegeben werden kann.


    Bei einem Formular und ajax würe
    <form onsubmit="functionsaufruf('formulardaten) return false;"> am meisten Sinn machen.

    Arbeitest du mit einem JS-Framework wie prototype hast du es noch einfacher.



    Da sieht das so aus klick
     
  5. 24. November 2010
    AW: - Submit ohne zu laden [+PHP]

    :/

    ich versteh nicht was ich ändern soll...
    reg.php JETZT (Script zur eintragung in Datenbank etc.(Das was abgearbeitet werden soll)
    PHP:
    <? PHP
    ...
        else echo 
    "<h2>ERROR:<ul>" . $fehler . "</ul></h2>" ;
        include(
    'reg_formular.php' );
    }
    elseif(!isset(
    $_POST [ 'submit' ])){include( 'reg_formular.php' );}

    }
    else{
        echo 
    '<br><br>Du bist eingeloggt! ' ;
        
    #print_r($_SESSION['user_nickname']);
        #echo '!';
         #echo '<br><a href="logout.php">Logout</a>';
    ?>
    <!--<a target='neu' onClick="window.open('','neu','top=100,left=200, height=700, width=550, scroll=true toolbar=no')" href='agb.html'>AGB</a> -->
    <?php  #include("footer.php");  ?>
    Wie soll ich das ausm Tutorial mit meiner reg.php "verbinden"?
    PHP:
    <?
    function 
    dummyOutput ( $beispiel $i $htmlID )
    {
        echo 
    $htmlID . $i . '||' ;
        foreach(
    $beispiel  as  $word ) {
            echo 
    $word . " " . $i . " " ;
        }
        echo 
    '||' ;
    }
     
    $htmlID  'content' ;
     
    $beispiel  explode ( ' ' 'BLABLABLA BLABLABL TEXT TEXT TEXT NOCH MEHR TEXT' );
     
    shuffle ( $beispiel );
     
    if(
    $_POST [ 's' ] ==  'x' ) {
     
        for(
    $i = 0 $i < 3 $i ++) {
            
    dummyOutput ( $beispiel $i $htmlID );
        }
     
    } else {
     
        
    dummyOutput ( $beispiel $_POST [ 's' ],  $htmlID );
    }
    ?>
    reg_formular.php
    PHP:

    < script type = "text/javascript" >
    <!--
    function 
    sendRequest ( digit ) {
        var 
    req ;
        try {
            
    req  window . XMLHttpRequest ?new  XMLHttpRequest (): 
            new 
    ActiveXObject ( "Microsoft.XMLHTTP" ); 
        } catch (
    e ) {
            
    //Kein AJAX Support
        

     
        
    req . onreadystatechange  = function() {
            if ((
    req . readyState  ==  4 ) && ( req . status  ==  200 )) { 
                var 
    update  = new Array();
                var 
    response  req . responseText
                if(
    response . indexOf ( '||'  != - 1 )) {
                    
    update  response . split ( '||' );
                    for(
    i = 0 i < update . length i += 2 )
                        
    document . getElementById ( update [ i ]). innerHTML  update [ i + 1 ];
                }
            }
        }; 
            
    req . open ( 'POST' 'reg.php' );  //reg.php schon geändert x)
            
    req . setRequestHeader ( 'Content-Type' 'application/x-www-form-urlencoded' );
            
    req . send ( 'agb=true' );
    }
    //-->
    </ script >

    <
    form method = "post"  action = "reg.php"  class= "example" > <!-- reg . php schon geändert x )-->

    <!-- 
    FORMULAR STEHT HIER  -->

    <
    div type = "submit"  id = 'register'  name = 'submit'  value = "Registrieren"  onclick = 'sendRequest(0)'  > Registrieren </ div >
    <!--<
    a type = "submit"  id = 'register'  name = 'submit'  value = "Registrieren"  onclick = 'this.form.submit()'  > Registrieren </ a >-->
    </
    form >
    <
    p > Mit der Anmeldung / Registrierung akzeptierst Du unsere  < a target = 'neu'  onclick =\ "window.open('','neu','top=100, left=200, height=700, width=550, scroll=true toolbar=no')\" href='agb.html'>AGB</a> und verpflichtest dich, diese einzuhalten.</p>
     
  6. 25. November 2010
    AW: - Submit ohne zu laden [+PHP]

    Hey, dir fehlt teilweise einfach das Wissen. Mit Copy&Past kommt ihr einfach nicht weit.

    Ich habe dir weiter oben gesagt wie man mit Ajax am besten ein Formular abschickt, hast du ignoriert. Dann habe ich gesagt, dass du die Parameter mitschicken musst sendRequest(0) gibt in deiner späteren ausgabe eine 0 mehr nicht. req.send('agb=true'); ist Schwachsinn, denn dann bräuchte man ja nicht mehr die Checkbox betätigen dazu fehlt dir der restliche Formularinhalt.


    Ich würde dir empfehlen Javascript bzw den Umgang mit Ajax zu erlernen, ich habe nicht das Gefühl, dass du weißt was du da abgeändert hast. Sondern das eher so ein auf gut Glück ding war.
     
  7. 25. November 2010
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: - Submit ohne zu laden [+PHP]

    hmm.. die Werte übergibt er, nur macht er nicht weiter...

    reg.php JETZT
    PHP:
    <? php      #include(...);     ?>
    <?php
    if(empty( $_SESSION [ "user_id" ]))  
    {  

    #$name = $_POST['name'];
    $pass  $_POST [ 'pwd' ];
    $vorname  $_POST [ 'vorname' ];
    #$email = $_POST['email'];
    $alter  $_POST [ 'alter' ];
    $wohnort  $_POST [ 'wohnort' ];
    $gehimf     $_POST [ 'geheimf' ];
    $gehima  $_POST [ 'geheima' ];
    $tag  $_POST [ 'tag' ];
    $monat  $_POST [ 'monat' ];
    $jahr  $_POST [ 'jahr' ];
    ###DEBUGGING
    print_r ( $_POST [ 'name' ]. " NAME<br>" );
    print_r ( $pass . " PWD<br>" );
    print_r ( $_POST [ 'pwd2' ]. " PWD2<br>" );
    print_r ( $_POST [ 'email' ]. " EMAIL<br>" );
    print_r ( $alter . " ALTER<br>" );
    print_r ( $wohnort . " WOHNORT<br>" );
    print_r ( $geheima . "ANTWORT<br> " );
    print_r ( $geheimf . " FRAGE<br>" );
    print_r ( $tag . " TAG<br>" );
    print_r ( $monat . " MONAT<br>" );
    print_r ( $jahr . " JAHR<br> " );
    print_r ( $_SESSION [ "user_id" ]. " SESSION ID" );
    ###DEBUGGING ENDE
    #######################EMAIL CHECK#####################################
    function  check_email ( $email ){        
    ...
        return 
    false ;
    }  
    #######################################################################
        
    if(isset( $_POST [ 'submit' ])) {
            if(empty(
    $_POST [ 'name' ])) {
                
    $fehler  .=  "<li>Der Name fehlt!</li>" ;
            }
    ...
            elseif(
    check_email ( $_POST [ 'email' ]) ==  false ) {
                
    $fehler  .=  "<li>Ung&uuml;ltige E-Mail Adresse</li>" ;
            }
    #######################################################################              

    $wunschname  $_POST [ 'name' ];              
    $wunschmail  $_POST [ 'email' ];
    $x  0 ;                                     


    $namesql = $_POST [ 'name' ];
    //pwdsql=$_POST[pwd];

    $sql  mysql_query ( "SELECT * FROM operation" );


    while(
    $data  mysql_fetch_object ( $sql )) {    
    $name  $data -> Irgenteinwert
        if(
    $wunschname  ==  $name ) {
            ...
        }
        if(
    $wunschmail  ==  $email ) {
           ...
        }
    }

        if(
    $x  !=  1 ) echo  "Der Benutzername ist noch zu haben.<br>" ;          
                                                                   
        if(empty(
    $fehler )) {
                
    $query  "   ..." #settings
             
    $sql  mysql_query ( $query ) or die( mysql_error ());    
          
            echo 
    "Danke ..." ;

           }
           
        else echo 
    "<h2>ERROR:<ul>" . $fehler . "</ul></h2>" ;}
    elseif(!isset(
    $_POST [ 'submit' ])){}

    }
    else{
        echo 
    '<br><br>Du bist eingeloggt! ' ;
        
    #print_r($_SESSION['user_nickname']);
        #echo '!';
         #echo '<br><a href="logout.php">Logout</a>';
    ?>
    <!--<a target='neu' onClick="window.open('','neu','top=100,left=200, height=700, width=550, scroll=true toolbar=no')" href='agb.html'>AGB</a> -->
    <?php  #include("footer.php");  ?>
    Wenn ich die ganzen print_rs weiter unten einfüge, damit der das da ausgeben soll, wird nichts ausgegeben...
    aus welchem Grund hört er so früh auf?

    reg_formular.php
    HTML:
    <head>
    <script type="text/javascript" language="javascript">
     var http_request = false;
     function makePOSTRequest(url, parameters) {
     http_request = false;
     if (window.XMLHttpRequest) { // Mozilla, Safari,...
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) {
     // set type accordingly to anticipated content type
     //http_request.overrideMimeType('text/xml');
     http_request.overrideMimeType('text/html');
     }
     } else if (window.ActiveXObject) { // IE
     try {
     http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
     try {
     http_request = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (e) {}
     }
     }
     if (!http_request) {
     alert('Cannot create XMLHTTP instance');
     return false;
     }
     
     http_request.onreadystatechange = alertContents;
     http_request.open('POST', url, true);
     http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     http_request.setRequestHeader("Content-length", parameters.length);
     http_request.setRequestHeader("Connection", "close");
     http_request.send(parameters);
     }
    
     function alertContents() {
     if (http_request.readyState == 4) {
     if (http_request.status == 200) {
     //alert(http_request.responseText);
     result = http_request.responseText;
     document.getElementById('myspan').innerHTML = result; 
     } else {
     alert('There was a problem with the request.');
     }
     }
     }
     
     function get(obj) {
     var poststr = "name=" + encodeURI( document.getElementById("name").value ) +
     "&pwd=" + encodeURI( document.getElementById("pwd").value ) +
     "&pwd2="+ encodeURI( document.getElementById("pwd2").value) +
     "&vorname=" + encodeURI( document.getElementById("vorname").value ) +
     "&email=" + encodeURI( document.getElementById("email").value ) +
     "&tag=" + encodeURI( document.getElementById("tag").value ) +
     "&monat=" + encodeURI( document.getElementById("monat").value ) +
     "&jahr=" + encodeURI( document.getElementById("jahr").value ) +
     "&geheimf=" + encodeURI( document.getElementById("geheimf").value ) +
     "&geheima=" + encodeURI( document.getElementById("geheima").value ) ;
     makePOSTRequest('reg.php', poststr);
     }
    </script>
    </head> 
    
    <span name="myspan" id="myspan"></span>
    
    <form action="javascript:get(document.getElementById('myform'));" name="myform" id="myform">
    <table>
    <tr><td></td><td><br /></td></tr>
    <tr>
    <td align="right">Nickname:*</td> <td> <input id="name" type="text" name="name" value= '<?PHP $_POST[name]?>'><br /></td>
    </tr>
    <tr>
    <td align="right">Passwort:*</td> <td> <input id="pwd" type="password" name="pwd" ><br /></td>
    </tr>
    <tr>
    <td align="right">Passwort best&auml;tigen:*</td> <td> <input id="pwd2">
    
    ...
    
    </table> 
    <p>* Pflichtangaben</p>
    
    <input type="button" name="button" value="Registrieren" onclick="javascript:get(this.parentNode);">
    </form>
    <p>Mit der Anmeldung/Registrierung akzeptierst Du ....</p>
    
    so siehts aus: (Alles wird richtig übergeben, nur nicht weiter bearbeitet! Theoretisch müsste unter SESSION ID stehen: Danke für die Registrierung bzw. eine Errormeldung.)

    capture3ra.jpg
    {img-src: //img715.imageshack.us/img715/2986/capture3ra.jpg}
     
  8. 26. November 2010
    AW: - Submit ohne zu laden [+PHP]

    session_start() ?
     
  9. 26. November 2010
    AW: Submit ohne zu laden [PHP+JAVASCRIPT]

    ist natürlich in der header datei xD


    edit:

    braucht man die wirklich in der reg_formular.php?
    abgesehen davon, dass ich if(empty($_SESSION["user_id"])) drin hab... (in der reg.php das eigentliche Script)

    wenn die session nämlich mir irgentwas gefüllt wäre, dann würde da ja stehen:

    "Du bist eingeloggt"

    (eine if-Verzweigung gibts dazu ebenfalls)

    edit2: okay.. war trivial...
    HTML:
    <script>
    ...
    var poststr = "name=" + encodeURI( document.getElementById("name").value ) +
     ...
     "&submit=" + encodeURI( document.getElementById("submit").value);
    ...
    </script>
    ...
    <input type="button" name="submit" id="submit" value="Registrieren" onclick="javascript:get(this.parentNode);">
    
    @murdoc
    bitte thread noch nicht schließen
     
  10. 26. November 2010
    AW: Submit ohne zu laden [PHP+JAVASCRIPT]

    Kannst du nochmal kurz sagen was du jetzt genau für eine Frage hast? Oder ist dein Problem jetzt gelöst?



    Für Javascriptfehler und andere Hilfreichen anzeigen empfehle ich dir das Addon Firebug zu installieren.
     
  11. 27. November 2010
    AW: Submit ohne zu laden [PHP+JAVASCRIPT]

    firebug hab ich installiert, jedoch gab es am anfang nur den fehler raus:

    GET not defined...

    Frage jedoch keine mehr,
    Problem ist gelöst
    ich will nur nicht NOCH EINEN Thread aufmachen, wenn es sich um ein Problem in meinem "Projekt" handelt...
     
  12. 19. Dezember 2010
    AW: Mehrstellige Werte in Array

    Hab ein neues Problem...

    Erstmal eine Tabelle: (Berufe)
    id | Beruf | Von | Status
    9 | Beruf A | Sender A | 0
    11 | Beruf B | Sender B | 0
    12 | Beruf C | Sender B | 0
    13 |Beruf D | Sender A | 0

    ich hoffe es ist so verständlich..
    Nun das Script, um die Datensätze aufzurufen:

    PHP:
    ...
        
    $sql = "SELECT * FROM Berufe WHERE Status = '" . $_GET [ 'status' ]. "'" #Status wird per GET übergeben. Ist also gesezt, und die Abfrage funktioniert auch sonst
        
    $query  mysql_query ( $sql );
        while(
    $jobs  mysql_fetch_object ( $query )){
            
    $x = 1 ;
            
    $id [ $x ]= $jobs -> id ;
            
    $beruf [ $x ]= $jobs -> Beruf ;     
            
    $von [ $x ]= $jobs -> Von ;
            
    $status [ $x ]= $jobs -> Status ;
       
            
    #echo "<br>X:".$x;
                
    if( $status [ $x ]== '0' ){
                    echo
    '<table id="tablemail1">' ;}
                elseif(
    $status [ $x ]== '1' || $status [ $x ]== '2' ){
                    echo
    '<table id="tablemail2">' ;}
             echo
    '<tr><td id="tdmail1">' . $von [ $x ]. '</td><td>' . $beruf [ $x ]. '<br></td>
            <td align="right">'
    ;
            if(
    $_GET [ 'status' ]!= '1' && $_GET [ 'status' ]!= '2' ){
            echo
    '
            <a href="?a=Berufe&id2='
    . $id [ $x ]. '&from=' . $von [ $x ]. '&subject=' . $beruf [ $x ]. '">Akzeptieren</a> <br> 
            <a href="?b=Berufe&id2='
    . $id [ $x ]. '&from=' . $von [ $x ]. '&subject=' . $beruf [ $x ]. '">Ignorieren</a> <br>
            <a href="?c=Berufe&id2='
    . $id [ $x ]. '&from=' . $von [ $x ]. '&subject=' . $beruf [ $x ]. '">L&ouml;schen</a>' ;}
            echo
    '
            </td></tr>'
    ;
            
    $x ++; 
            
    #echo "<br>X:".$id[$x];
            
    echo "</table><br>" ;
        } echo
    '<hr>' ;
    ...
    Der Fehler liegt bei: "...<a href="?a=Berufe&id2='.$id[$x].'..."
    $id[$x] bekommt die Werte ab 11 nicht mehr, und es steht nur noch eine "1" da...
    Wert 9 bekommt er noch !!
    Der Rest (Berufe, Von, Status) wird richtig angezeigt... nur der Link ist nicht richtig "formatiert" (<a href="?a=Berufe&id=1">...)

    So...
    Bei Fragen einfach fragen
     
  13. 19. Dezember 2010
    AW: Mehrstellige Werte in Array

    es steht $x=1; innerhalb der while-schleife, also wird sich der wert nicht ändern, bzw. er wird nach dem inkrementieren sofort wieder auf 1 gesetzt.
     
  14. 19. Dezember 2010
    AW: Mehrstellige Werte in Array

    Erscheint mir logisch... Nur.. geht das ebenfalls nicht?

    ....
    $x=1;
    $sql="SELECT * FROM Ideen WHERE Status = '".$_GET['status']."'";
    $query = mysql_query($sql);
    while($ideas = mysql_fetch_object($query)){

    $id[$x]=$ideas->id;
    .....

    Wenn ich den Datensatz
    20 | Beruf E | Person Y | 0
    einfüge, dann bekommt $id[$x] den Wert: 2..
    D.h. Er kann nichts mit der 2. Zahl anfangen.. aber warum?


    Problem gelöst:
    PHP:
        $x = 1 ;
        
    $sql = "SELECT * FROM Berufe WHERE Status = '" . $_GET [ 'status' ]. "'" ;
        
    $query  mysql_query ( $sql );
        while(
    $jobs  mysql_fetch_object ( $query )){
             
    #$x=1; macht kein unterschied, obs oben oder hier steht xD
            
    $idb [ $x ]= $jobs -> id #$id wird früher schonmal verwendet.. Mein Fehler
            
    $beruf [ $x ]= $jobs -> Beruf ;
            
    $status [ $x ]= $jobs -> Status ;
            
    $von [ $x ]= $jobs -> Von ;
            
    #echo "<br>X:".$x;
                
    if( $status [ $x ]== '0' ){
                    echo
    '<table id="tablemail1">' ;}
                elseif(
    $status [ $x ]== '1' || $status [ $x ]== '2' ){
                    echo
    '<table id="tablemail2">' ;}
             echo
    '<tr><td id="tdmail1">' . $von [ $x ]. '</td><td>' . $beruf [ $x ]. '<br></td>
            <td align="right">'
    ;
            if(
    $_GET [ 'status' ]!= '1' && $_GET [ 'status' ]!= '2' ){
            echo
    '
            <a href="?a=Berufe&id2='
    . $idb [ $x ]. '&from=' . $von [ $x ]. '&subject=' . $beruf [ $x ]. '">Akzeptieren</a> <br> 
            <a href="?b=Berufe&id2='
    . $idb [ $x ]. '&from=' . $von [ $x ]. '&subject=' . $beruf [ $x ]. '">Ignorieren</a> <br>
            <a href="?c=Berufe&id2='
    . $idb [ $x ]. '&from=' . $von [ $x ]. '&subject=' . $beruf [ $x ]. '">L&ouml;schen</a>' ;}
            echo
    '
            </td></tr>'
    ;
            
    $x ++; 
            
    #echo "<br>X:".$id[$x];
            
        

        echo
    "</table><br>" ;
        echo
    '<hr>' ;
     
  15. 25. Dezember 2010
    AW: bb2html

    Folgendes neues Problem:

    hab eine Funktion:
    PHP:
    function  bb2html $bb  )
    {
        
    $bb  preg_replace ( '/\[b\](.*?)\[\/b\]/' '<b>$1</b>' $bb );
        
    $bb  preg_replace ( '/\[i\](.*?)\[\/i\]/' '<i>$1</i>' $bb );
        
    $bb  preg_replace ( '/\[u\](.*?)\[\/u\]/' '<u>$1</u>' $bb );
        
    $bb  preg_replace ( '/\[color=([^ ]+).*\](.*?)\[\/color\]/' '<font style="color:#$1;">$2</font>' $bb );
        
    $bb  preg_rep lace ( '/\[url](.*?)\[\/url\]/' '<a href="$1">$1</a>' $bb );    
        
    $bb  preg_replace ( '/\[align=([^ ]+).*\](.*?)\[\/align\]/' '<div style="text-align:$1">$2</div>' $bb );
        
    $bb  preg_replace ( '/\[size=([^ ]+).*\](.*?)\[\/size\]/' '<font style="font-size:$1px;">$2</font>' $bb );
        
    $bb  preg_replace ( '/\[img](.*?)\[\/img\]/' '<img style="max-width:100%;" src="$1" />' $bb );
        
        
    $bb  preg_replace ( '/\n/' "<br>" $bb );

        return 
    $bb ;

    }
    und einen text:
    Code:
    [align=center]Zentriert[/align]
    [align=right]rechts[/align]
    
    [url ]ein Link[/url ]
    /////////////////////////oder//////////////
    [color=FF0000 ]Rot[/color]
    [color=0000FF ]Blau[/color]
    
    der text wird in $text gespeichert

    nun wird $text in die funktion übergeben bb2html($text)

    folgendes text erschreint:

    Code:
    rechts //unformatiert und zentriert verschwindet
    
    [U]ein Link[/U] //link funktioniert
    ////////////////bzw.///////////////////
    Blau //nicht formatiert o.ä.
    
    ("Blau" laut Firebug: <font style="">Blau</font>)
    Wenn ich nur eine Farbe einfüge wird es richtig ausgegeben...

    Kann jemand über die Funktion gucken und mir sagen wo der Fehler ist?
    Danke ^^
     
  16. 25. Dezember 2010
    AW: bb2html

    Minimale Fehler:

    Teilweise stand im Code nur [^ ] müsste aber [^\]] heißen!

    Anstatt "preg_replace('/\n/', "<br>", $bb);" kannst du besser nl2br nutzen

    PHP:
    <? PHP

    function  bb2html $bb  )
    {
        
    $bb  preg_replace ( '/\[b\](.*?)\[\/b\]/' '<b>$1</b>' $bb );
        
    $bb  preg_replace ( '/\[i\](.*?)\[\/i\]/' '<i>$1</i>' $bb );
        
    $bb  preg_replace ( '/\[u\](.*?)\[\/u\]/' '<u>$1</u>' $bb );
        
    $bb  preg_replace ( '/\[color=([^\]]+).*\](.*?)\[\/color\]/' '<font style="color:#$1;">$2</font>' $bb );
        
    $bb  preg_replace ( '/\(.*?)\[\/url\]/' '<a href="$1">$1</a>' $bb );    
        
    $bb  preg_replace ( '/\[align=([^\]]+).*\](.*?)\[\/align\]/' '<div style="text-align:$1">$2</div>' $bb );
        
    $bb  preg_replace ( '/\[size=([^\]]+).*\](.*?)\[\/size\]/' '<font style="font-size:$1px;">$2</font>' $bb );
        
    $bb  preg_replace ( '/\[img](.*?)\[\/img\]/' '<img style="max-width:100%;" src="$1" />' $bb );
        
        
    $bb  nl2br ( $bb false );

        return 
    $bb ;

    }  



    $text  = <<<TEXT
    [align=center]Zentriert[/align]
    [align=right]rechts[/align]

    [url]ein Link
    /////////////////////////oder//////////////
    [color=#FF0000]Rot[/color]
    [color=#0000FF]Blau[/color]
    TEXT;


    echo 
    bb2html ( $text );
     
  17. 25. Dezember 2010
    AW: Submit ohne zu laden [PHP+JAVASCRIPT]

    DANKE
     
  18. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.