ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » [Shoutbox] Textfeld verstecken

Geschlossen
  1. #1
    User Pic
    Ra- Mitglied
    Registriert seit
    01.05.2011
    Beiträge
    317
    Beitragswertungen
    13 Beitragspunkte
    Hallo,

    ich plage mich mal wieder mit einem Problem rum. Normalerweise ist html/css kein problem für mich aber hierdran beiße ich mir die Zähne aus :/

    Ich möchte gerne meine Shoutbox anpassen und zwar folgendermaßen:

    Wenn ich auf einen Link klicke soll ein Div container erscheinen der in dem dann das Textfeld zum schreiben ist.

    Hat da vielleicht jemand ne Idee?

    Das funktioniert aber leider nicht so ganz. Hier einmal der Code dafür:

    <?php
    // Copyright by Manuel
    // Support www.ilch.de
    defined ('main') or die ('no direct access');
    
    if (loggedin()) {
        $shoutbox_VALUE_name = $_SESSION['authname'];
    } else {
        $shoutbox_VALUE_name = 'Nickname';
    }
    if (has_right($allgAr['sb_recht'])) {
        if (!empty($_POST['shoutbox_submit']) AND chk_antispam ('shoutbox')) {
            $shoutbox_nickname = escape($_POST['shoutbox_nickname'], 'string');
            $shoutbox_nickname = substr($shoutbox_nickname, 0, 15);
            $shoutbox_textarea = escape($_POST['shoutbox_textarea'], 'textarea');
            $shoutbox_textarea = preg_replace("/\[.?(url|b|i|u|img|code|quote)[^\]]*?\]/i", "", $shoutbox_textarea);
            $shoutbox_textarea = strip_tags($shoutbox_textarea);
            if (!empty($shoutbox_nickname) AND !empty($shoutbox_textarea)) {
                db_query('INSERT INTO `prefix_shoutbox` (`nickname`,`textarea`) VALUES ( "' . $shoutbox_nickname . '" , "' . $shoutbox_textarea . '" ) ');
            }
        }
    	echo '<h2>SHOUTBOX<a class="buttons" href="#"onclick="document.getElementById('.getdivone.').style.display='.inline.'">schreiben</a></h2>';
    	echo '<div style="display:none" id="getdivone">';
        echo '<form action="index.php?' . $menu->get_complete() . '" method="POST">';
        echo '<input class="team_shoutbox name big" type="text" name="shoutbox_nickname" value="' . $shoutbox_VALUE_name . '" onFocus="if (value == \'' . $shoutbox_VALUE_name . '\') {value = \'\'}" onBlur="if (value == \'\') {value = \'' . $shoutbox_VALUE_name . '\'}">';
        echo '<br /><textarea class="team_shoutbox big" name="shoutbox_textarea"></textarea><br />';
        $antispam = get_antispam ('shoutbox', 0);
    	echo $antispam;
    	if (!empty($antispam)) {
    		echo '';
    	}
        echo '<input class="buttons send" type="submit" value="' . $lang['formsub'] . '" name="shoutbox_submit">';
        echo '</form>';
    	echo '</div>';
    }
    $erg = db_query('SELECT * FROM `prefix_shoutbox` ORDER BY id DESC LIMIT ' . (is_numeric($allgAr['sb_limit'])?$allgAr['sb_limit']:5));
    $class = 'Cnorm';
    while ($row = db_fetch_object($erg)) {
        $class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite');
        echo '<div class="shoutbox"><b>' . $row->nickname . ':</b> ' . preg_replace('/([^\s]{' . $allgAr['sb_maxwordlength'] . '})(?=[^\s])/', "$1\n", $row->textarea) .'</br><small>vor {time} Minuten</small></div>';
    }
    echo '<div class="redline"></div>';
    
    ?>


    betroffene Homepage: externer Link

    Edit: Könnte ein Mod den Threadtitel bitte umändern in "[Shoutbox] Textfeld verstecken" Leider war ich mit dem abschicken etwas zu schnell :/


    Zuletzt modifiziert von Ra- am 10.03.2013 - 16:21:21
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    Jquery
    $(document).ready(function(){
    				//hide the all of the element with class msg_body
    				$(".msg_body").hide();
    				//toggle the componenet with class msg_body
    				$(".msg_head").click(function(){
    						$(this).next(".msg_body").slideToggle(600);
    				});
    			});



    HTML
    <p class="msg_head"></p>
    <div class="msg_body">
    </div>
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Ra- Mitglied
    Registriert seit
    01.05.2011
    Beiträge
    317
    Beitragswertungen
    13 Beitragspunkte
    Das funktionier bei mir leider nicht irgendwie.

    Hier nochmal der Code mit deinem Code:

    <script>
    $(document).ready(function(){
                    //hide the all of the element with class msg_body
                    $(".msg_body").hide();
                    //toggle the componenet with class msg_body
                    $(".msg_head").click(function(){
                            $(this).next(".msg_body").slideToggle(600);
                    });
                });
    </script>
    <?php
    // Copyright by Manuel
    // Support www.ilch.de
    defined ('main') or die ('no direct access');
    
    if (loggedin()) {
        $shoutbox_VALUE_name = $_SESSION['authname'];
    } else {
        $shoutbox_VALUE_name = 'Nickname';
    }
    if (has_right($allgAr['sb_recht'])) {
        if (!empty($_POST['shoutbox_submit']) AND chk_antispam ('shoutbox')) {
            $shoutbox_nickname = escape($_POST['shoutbox_nickname'], 'string');
            $shoutbox_nickname = substr($shoutbox_nickname, 0, 15);
            $shoutbox_textarea = escape($_POST['shoutbox_textarea'], 'textarea');
            $shoutbox_textarea = preg_replace("/\[.?(url|b|i|u|img|code|quote)[^\]]*?\]/i", "", $shoutbox_textarea);
            $shoutbox_textarea = strip_tags($shoutbox_textarea);
            if (!empty($shoutbox_nickname) AND !empty($shoutbox_textarea)) {
                db_query('INSERT INTO `prefix_shoutbox` (`nickname`,`textarea`) VALUES ( "' . $shoutbox_nickname . '" , "' . $shoutbox_textarea . '" ) ');
            }
        }
    	echo '<h2>SHOUTBOX<a href="#" class="msg_head">schreiben</a></h2>';
    	echo '<div class="msg_body">';
        echo '<form action="index.php?' . $menu->get_complete() . '" method="POST">';
        echo '<input class="team_shoutbox name big" type="text" name="shoutbox_nickname" value="' . $shoutbox_VALUE_name . '" onFocus="if (value == \'' . $shoutbox_VALUE_name . '\') {value = \'\'}" onBlur="if (value == \'\') {value = \'' . $shoutbox_VALUE_name . '\'}">';
        echo '<br /><textarea class="team_shoutbox big" name="shoutbox_textarea"></textarea><br />';
        $antispam = get_antispam ('shoutbox', 0);
    	echo $antispam;
    	if (!empty($antispam)) {
    		echo '';
    	}
        echo '<input class="buttons send" type="submit" value="' . $lang['formsub'] . '" name="shoutbox_submit">';
        echo '</form>';
    }
    echo '</div>';
    $erg = db_query('SELECT * FROM `prefix_shoutbox` ORDER BY id DESC LIMIT ' . (is_numeric($allgAr['sb_limit'])?$allgAr['sb_limit']:5));
    $class = 'Cnorm';
    while ($row = db_fetch_object($erg)) {
        $class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite');
        echo '<div class="shoutbox"><b>' . $row->nickname . ':</b> ' . preg_replace('/([^\s]{' . $allgAr['sb_maxwordlength'] . '})(?=[^\s])/', "$1\n", $row->textarea) .'</br><small>vor {time} Minuten</small></div>';
    }
    echo '<div class="redline"></div>';
    
    ?>
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    hast du auch die jquery library eingebunden?

    das sollte in den head bereich deiner index.html

    <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Ra- Mitglied
    Registriert seit
    01.05.2011
    Beiträge
    317
    Beitragswertungen
    13 Beitragspunkte
    Ja ist eingebunden :/
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    wo hast du sie denn eingebunden?
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Ra- Mitglied
    Registriert seit
    01.05.2011
    Beiträge
    317
    Beitragswertungen
    13 Beitragspunkte
    naja im head Bereich der index.htm
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    und der rest?
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Ra- Mitglied
    Registriert seit
    01.05.2011
    Beiträge
    317
    Beitragswertungen
    13 Beitragspunkte
    Der Rest ist in der include/boxes/shoutbox.php eingebunden. oben habe ich den Code ja gepostet zwinker
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    sieht auf den ersten blick gut aus ... hast du das auf deiner webseite online? damit man sich das mal live anschauen kann?
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Ra- Mitglied
    Registriert seit
    01.05.2011
    Beiträge
    317
    Beitragswertungen
    13 Beitragspunkte
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
     $(this).next(".msg_body").slideToggle(600);


    Wenn du daraus ein

    $(".msg_body").slideToggle(600);


    machst funktioniert es
    1 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Ra- Mitglied
    Registriert seit
    01.05.2011
    Beiträge
    317
    Beitragswertungen
    13 Beitragspunkte
    Funktioniert wunderbar, nur leider scrollt man damit zum anfang der Seite. Hat da jemand eine Lösung für wie das verhindert wird?
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    In dem du einen HTML-Anker machst auf deinen Link.


    Statt nur # in der URL zb #shoutbox, dann ein name="shoutbox" definieren
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    ZitatZitat geschrieben von Pion

     $(this).next(".msg_body").slideToggle(600);


    Wenn du daraus ein

    $(".msg_body").slideToggle(600);


    machst funktioniert es


    nein das ist falsch!

    weil wenn du das machst gehen alle slides down wenn du mehrere eingebunden hast ...

    lass es ruhig wie von mir genannt
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    Naja also falsch ist das sicherlich nicht. Die Frage ist wieviel er einbindet, wenn er nur eins einbindet ist das so okay.

    Ansonsten ist deins falsch, von this gibts ja kein next msg_body
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    doch gibt es ... weil this ja der msg_head ist ...

    von von dem aus gesehen das nächste msg_body ...
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    Okay, letztlich war bei ihm das Problem, dass er 2 mal ".msg_head" aka buttons vor dem ersten ".msg_body" verwendet.
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    jop das geht natürlich nicht
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten