Ausklappbox:Neuen Inhalt aus Datenbank lesen

silent12

Mitglied
Hallo,
ich bin gerade dabei meine website zu programmieren ( http://vu2048.web02.getvisible.de/neuaufbau/Mywebshare_website/ ) und dort würde ich gerne per readmore button einen anderen text aus einer Datenbank ausgeben.
Mein Code bis jetzt:

Code:
var id = encodeURI($myblockinput.parent().attr('id'));
if(id == "")
{
alert("keine ID übermittelt");
}
else
{
$.ajax
({
type: "POST",
url: "js/ajax.php",
data: "id="+id,
success: function(data)
{
var bloginhalt = data;
$myblockinput.parent().animate({height: "500px"}, "800" ,function(){$myblockinput.html(bloginhalt);});

//rest kompliziert wenn man den code nicht kennt...
var idparent = $myblockinput.parent().attr('id');
$("#" + idparent + " .blogtext").removeClass('blogtext').addClass('blogtextlong');
alert(bloginhalt);
$myblockinput.removeClass('submit').addClass('submitlongblog');
$myblockinput.parent().addClass('blogausgeklappt');

} 
});

und die ajax.php:
Code:
<?php
/*empfängt id des auszugebenden beitrags*/

if(!empty($_POST['id']))
{
	$id = $_POST['id'];

	/*#############AUSGABE der 2 Blogeinträge der Preview#########*/
			include'../../Admin/connect.php';
			/*Auswahl aus einer Tabelle*/
			$abfrage4 = mysql_query("SELECT * FROM Blog WHERE ID = '$id'");


			/*Ausgabe der Auswahl und dabei in einem Array($row2) speichern*/
			while ($row4 = mysql_fetch_array($abfrage4)) {
	
			$inhalt =   "<div class='blogbox' id='".$row4['id']."'>
								<div class='blogdate'>".$row4['date']."</div>
								<h2 class='blogheadline'>".$row4['title']."</h2>
								<div class='blogtext'>".$row4['blogtext']."</div>
								<div class='blogimage'>
									<img src='images/Blogimages/".$row4['blogimage']."' width='140px' height='140px' alt='blogimage' />
								</div>
								<div style='clear:both'></div>
								<input type='submit' class='submit' value='Read More'/>
						</div>";
	
	
	
			}
			
			$inhalt = preg_replace("/\r|\n/s", "", $inhalt);
			mysql_close($connection);/*beendet Verbindung*/
			echo utf8_encode($inhalt); 
			
}
else
{
	$fehler = "keine id übermittelt";
	echo $fehler; 
}
?>


Leider wird der neue Inhalt zwar in der Variablen übergeben, aber er wird nicht ausgegeben.
Kann mir jemand helfen ? (Wenn das hier im falschen Topic ist bitte einfach verschieben danke :) )

Gruß
silent12
 
Problem erkannt:
Die Variable bloginhalt ist der innersten Funktion, die das DIV befüllen soll, nicht bekannt, da sie lokal ist und der Funktion nicht übergeben wird.
Probier mal folgende Zeile stattdessen:
Javascript:
$myblockinput.parent().html(bloginhalt).animate({height: 500}, 800);
 
Klappt leider auch noch nicht. Siehe hier: http://vu2048.web02.getvisible.de/neuaufbau/Mywebshare_website/
Wenn dir TS oder Skype oder so lieb ist wäre das evtl praktisch.

Hier nochmal der GANZE Code damit wir zu 100% am gleichen Code rumdenken:

index.php
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="robots" content="all" />


<meta name="keywords" content="Blog, Tim Pfeifle, CSS3, HTML5, Webdesign" />
<meta name="description" content="Tim Pfeifle - BLOG" />
<meta name="author" content="Tim Pfeifle" />

<title>MyWebshare</title>
<link rel="shortcut icon" href="images/logo.png" />

<!--INCLUDES-->
<link rel="stylesheet" type="text/css" href="css/main.css"/>


<!--alleBlogbeitraege-->

<?php
$bloganzahl = 0;
$showall = array();
$alleblogs = "";
include'../Admin/connect.php';
/*Auswahl aus einer Tabelle*/
$abfrage3 = mysql_query("SELECT * FROM Blog ORDER BY ID DESC");


/*Ausgabe der Auswahl und dabei in einem Array($row2) speichern*/
while ($row3 = mysql_fetch_array($abfrage3)) {
			
			$bloganzahl++;
			$showall[] = "<div class='blogbox' id='".$row3['id']."'>
								<div class='blogdate'>".$row3['date']."</div>
								<h2 class='blogheadline'>".$row3['title']."</h2>
								<div class='blogtext'>".$row3['previewtext']."</div>
								<div class='blogimage'>
									<img src='images/Blogimages/".$row3['blogimage']."' width='140px' height='140px' alt='blogimage' />
								</div>
								<div style='clear:both'></div>
								<input type='submit' class='submit' value='Read More'/>
						</div>";	
						
}

unset($showall[0]);
unset($showall[1]);
$alleblogs =  implode('', $showall); /*verbindet alle Array Werte -> Code für alle Blogeinträge in einer Variablen*/
$alleblogs = preg_replace("/\r|\n/s", "", $alleblogs);
$bloganzahl = ($bloganzahl*220)+600-440; /*anzahl der blogeinträge* länge eines blogeintrags + jetzige länge der contentbox - länge der obigen 2 blogeinträge*/

			mysql_close($connection);/*beendet Verbindung*/
			?>
<!--ENDE alleBlogbeitraege-->

</head>
<body>
<div id="maincontent">
	
	<img src="images/navibalken.png" id="navibalken" alt="asdf"/>
	<ul id="mainmenu">
	<a href="index.php"><li class="activemenu" style="border-top:3px solid white; color:white;">Home</li></a>
	<a href="files.php"><li class="notactivemenu" >Files</li></a>
	<a href=""><li class="notactivemenu" >About</li></a>
	</ul>
	
	<div style="clear:both;"></div>
	
	<div id="slider">
		<div id="sliderimage">
		</div>
		<div id="sliderpreviewmainbox">
			<div id="c1" class="activesliderbox asdf">
				<div class="onesliderpreviewboxtext">
					<br />
					<span class="onesliderpreviewboxheadline">
						Business Cards <br />
					</span>
					How to simple create an own business card.
				</div>
			</div>
			<div id="c2" class="notactivesliderbox asdf">
				<div class="onesliderpreviewboxtext">
					<br />
					<span class="onesliderpreviewboxheadline">
						CSS3: What's new ? <br />
					</span>
					Can I show you some nice tipps and tricks with CSS3 ?
				</div>
			</div>
			<div id="c3" class="notactivesliderbox asdf">
				<div class="onesliderpreviewboxtext">
					<br />
					<span class="onesliderpreviewboxheadline">
						HTML5: What's new ? <br />
					</span>
					Learn some nice features about the newest Version of HTML.
				</div>
			</div>
			<div id="c4" class="notactivesliderbox asdf">
				<div class="onesliderpreviewboximage">
				</div>
				<div class="onesliderpreviewboxtext">
					<br />
					<span class="onesliderpreviewboxheadline">
						PHP:Security <br />
					</span>
					How to make sure your PHP-Code is save.
				</div>
			</div>
		</div>
	</div>
	
	<div id="infobox">
		<div class="textmitabstand">
			<h2>News</h2>
			<div id="newsbox">
			<?php
			include'../Admin/connect.php';
			/*Auswahl aus einer Tabelle*/
			$abfrage = mysql_query("SELECT * FROM News ORDER BY ID DESC LIMIT 2");


			/*Ausgabe der Auswahl und dabei in einem Array($row) speichern*/
			while ($row = mysql_fetch_array($abfrage)) {
	

				echo "<a href=\" ".$row['link']." \" target=\"_blank\" class=\"newsheadline\">".$row['date']."</a> <br />";
				echo $row['newstext']."<br /> <br />";
			}


			mysql_close($connection);/*beendet Verbindung*/
			?>
			</div>
				
			<hr />
		
			<div id="aboutme">
				<a href="" class="newsheadline">Tim Pfeifle</a> <br />
				<img src="images/author.png"  alt="TimPfeifle" id="authorimage"/>
				<div id="authortext">
				Neben der Schulzeit arbeite 
				ich bei einzelnen Firmen mit,
				veröffentliche Web- layouts
				und bilde mich
				hauptsächlich in CSS,
				PHP, Javascript 
				und Serveradministration weiter. <br />
				Ich bin 15 Jahre alt und
				immer für neue Projekte und Aufgaben offen. 
					<a href="" id="emaillink"><img src="images/email.png" class="emailicon" alt="Kontaktemail" /></a>
					<div id="kontakttext"><a href="" style="color:white; text-decoration:none;">Kontakt</a></div>
					<div style="clear:both;"></div>
				</div>
			</div>
		</div>
	</div>
	
	
	<div id="contentbox">
	
		<div id="socialbar">
		<a href=""><img src="images/facebook-128.png" alt="facebook-128.png" /></a>
		<div style="clear:both;"></div>
		<a href=""><img src="images/twitter-128.png" alt="twitter-128.png" /></a>
		<div style="clear:both;"></div>
		<a href=""><img src="images/youtube-128.png" alt="youtube-128.png" /></a>
		</div>
		<div style="clear:both;"></div>
	
		<div id="contentboxtext">			
			<?php
			/*#############AUSGABE der 2 Blogeinträge der Preview#########*/
			include'../Admin/connect.php';
			/*Auswahl aus einer Tabelle*/
			$abfrage2 = mysql_query("SELECT * FROM Blog ORDER BY ID DESC LIMIT 2");


			/*Ausgabe der Auswahl und dabei in einem Array($row2) speichern*/
			while ($row2 = mysql_fetch_array($abfrage2)) {
	
			echo "<div class=\"blogbox\" id=\"".$row2['id']."\">
						<div class=\"blogdate\">".$row2['date']."</div>
						<h2 class=\"blogheadline\">".$row2['title']."</h2>
						<div class=\"blogtext\">".$row2['previewtext']."</div>
						<div class=\"blogimage\">
							<img src=\"images/Blogimages/".$row2['blogimage']."\" width=\"140px\" height=\140px\" alt=\"blogimage\" />
						</div>
						<div style=\"clear:both\"></div>
						<input type=\"submit\" class=\"submit\" value=\"Read More\"/>
				  </div>";
	
	
	
			}
			mysql_close($connection);/*beendet Verbindung*/
			?>
			
			
			<div id="beforeshowalllastblogbox"></div>
			<br />
			<span class="alleanzeigen"><center>Alle anzeigen</center></span>
		</div>
		
		<div id="footer">
			&copy; 2012 by Tim Pfeifle <br />
			All Rights Reserved, <a href="" class="footerlink">AGB</a> und <a href="impressum.php" class="footerlink">Impressum</a>
		</div>
	</div>
	
	<div style="clear:both;"></div>
	
	
</div>


<!--slider-->
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js/slider.js"></script>
<!--Ende slider-->	

<script type="text/javascript" src="js/menu.js"></script>





<!--showall-->
<script type="text/javascript">
$(document).ready(function(){
    // jQuery-Code
$('.alleanzeigen').click(
		function()
		{
			$('.alleanzeigen').css('visibility', 'hidden');
			var alleblogsnormal = <?php echo count($showall) ?>;
			var contentboxlength = $('.blogausgeklappt').length*520 + (alleblogsnormal - $('.blogausgeklappt').length)*220+690-80;
			$('#contentbox').animate({height: contentboxlength +"px"}, "800" ,function(){$("#beforeshowalllastblogbox").after("<?php echo $alleblogs ?>");});
			$('#contentbox').css('height', 'auto');
			
		}
);
});
</script>
<!--End showall-->

<!--showwholeblog-->
<script type="text/javascript">
$(document).ready(function(){
// jQuery-Code
$('.blogbox input').live('click',
function()
{
var $myblockinput = $(this);
if($myblockinput.parent('.blogausgeklappt').length > 0)
{
$('#contentbox').css('height', 'auto');
$myblockinput.attr('value', 'Read More');


var id2 = encodeURI($myblockinput.parent().attr('id'));
if(id2 == "")
{
alert("keine ID übermittelt");
}
else
{
$.ajax
({
type: "POST",
url: "js/ajax2.php",
data: "id2="+id2,
success: function(data2)
{
var blogpreview = data2;


$myblockinput.parent().animate({height: "220px"}, "800" ,function(){$(this).replaceWith(blogpreview);});

var idparent = $myblockinput.parent().attr('id');
$("#" + idparent + " .blogtext").removeClass('blogtextlong').addClass('blogtext');
$myblockinput.removeClass('submitlongblog').addClass('submit');
$myblockinput.parent().removeClass('blogausgeklappt');
}
});

}

}

else
{
$('#contentbox').css('height', 'auto');
$myblockinput.attr('value', 'Read Less');

var id = encodeURI($myblockinput.parent().attr('id'));
if(id == "")
{
alert("keine ID übermittelt");
}
else
{
$.ajax
({
type: "POST",
url: "js/ajax.php",
data: "id="+id,
success: function(data)
{
var bloginhalt = data;
$myblockinput.parent().html(bloginhalt).animate({height: 500}, 800);
 

var idparent = $myblockinput.parent().attr('id');
$("#" + idparent + " .blogtext").removeClass('blogtext').addClass('blogtextlong');
$myblockinput.removeClass('submit').addClass('submitlongblog');
$myblockinput.parent().addClass('blogausgeklappt');
 
} 
});


}
}
}
);
});
</script>
<!--END showwholeblog-->
</body>
</html>


ajax.php
Code:
<?php
/*empfängt id des auszugebenden beitrags*/
 
if(!empty($_POST['id']))
{
    $id = $_POST['id'];
 
    /*#############AUSGABE der 2 Blogeinträge der Preview#########*/
            include'../../Admin/connect.php';
            /*Auswahl aus einer Tabelle*/
            $abfrage4 = mysql_query("SELECT * FROM Blog WHERE ID = '$id'");
 
 
            /*Ausgabe der Auswahl und dabei in einem Array($row2) speichern*/
            while ($row4 = mysql_fetch_array($abfrage4)) {
    
            $inhalt =   "<div class='blogbox' id='".$row4['id']."'>
                                <div class='blogdate'>".$row4['date']."</div>
                                <h2 class='blogheadline'>".$row4['title']."</h2>
                                <div class='blogtext'>".$row4['blogtext']."</div>
                                <div class='blogimage'>
                                    <img src='images/Blogimages/".$row4['blogimage']."' width='140px' height='140px' alt='blogimage' />
                                </div>
                                <div style='clear:both'></div>
                                <input type='submit' class='submit' value='Read More'/>
                        </div>";
    
    
    
            }
            
            $inhalt = preg_replace("/\r|\n/s", "", $inhalt);
            mysql_close($connection);/*beendet Verbindung*/
            echo utf8_encode($inhalt); 
            
}
else
{
    $fehler = "keine id übermittelt";
    echo $fehler; 
}
?>


ajax2.php
Code:
<?php
/*empfängt id des auszugebenden beitrags*/

if(!empty($_POST['id2']))
{
	$id2 = $_POST['id2'];

	/*#############AUSGABE der 2 Blogeinträge der Preview#########*/
			include'../../Admin/connect.php';
			/*Auswahl aus einer Tabelle*/
			$abfrage4 = mysql_query("SELECT * FROM Blog WHERE ID = '$id2'");


			/*Ausgabe der Auswahl und dabei in einem Array($row2) speichern*/
			while ($row4 = mysql_fetch_array($abfrage4)) {
	
			$inhalt2 =   "<div class='blogbox' id='".$row4['id']."'>
								<div class='blogdate'>".$row4['date']."</div>
								<h2 class='blogheadline'>".$row4['title']."</h2>
								<div class='blogtext'>".$row4['previewtext']."</div>
								<div class='blogimage'>
									<img src='images/Blogimages/".$row4['blogimage']."' width='140px' height='140px' alt='blogimage' />
								</div>
								<div style='clear:both'></div>
								<input type='submit' class='submit' value='Read More'/>
						</div>";
	
	
	
			}
			
			$inhalt2 = preg_replace("/\r|\n/s", "", $inhalt2);
			mysql_close($connection);/*beendet Verbindung*/
			echo utf8_encode($inhalt2); 
			
}
else
{
	$fehler = "keine id übermittelt";
	echo $fehler; 
}
?>
 
Kannst du nicht die Lösung deines Problems hier posten? Du musst ja nicht den kompletten Quelltext kopieren, aber der relevante Teil ist sicher für einige andere Forenbesucher interessant.

Gruß
 

Neue Beiträge

Zurück