Javascript mit PHP-Variable

Ryje

Grünschnabel
Hallo liebe Community,

da ich mich mit PHP schon etwas befasst habe und auch schon einiges draufhab hänge ich immoment an einem Problem.

Ich versuche zur zeit ein News-System zu schreiben welches ungefähr so aussehen soll.

Nur leider hängts dabei an Javascript da ich davon leider noch sehr wenig ahnung habe.

Zum Problem:

Mit den 3 Befehlen versuche ich in PHP einer javascript-Variablen eine PHP-Variable zuzuordnen. Sollte auch nicht das problem sein

echo '<script type="text/javascript">';
echo 'var postId="$id";';
echo '</script>';


Hiermit wird der Titel der News zum link womit sich dann die eigentliche nachricht dann auklappen soll

echo '<h3><a href="javascript:toggleEntry(postId);">';
echo $titel;
echo '</a> </h3><small>';


Das problem hängt HIER:

echo '<table class="collapsed" id="news"+postId>';


ich versuche der tabelle die ID ="news" und dann dahinter den inhalt der variablen $id. Hab da schon einiges probiert aber es will nicht so wie ich will das heißt der News-titel wird zwar als link angezeigt aber wenn ich draufklicke passiert nichts.

Desweiter soll das ja wiederholt werden bis alle news durch sind aus der Datenbank.

wenn ich HIER

echo '<script type="text/javascript">';
echo 'var postId="$id";';
echo '</script>';


statt der PHP-variablen $id eine zahl eingebe und HIER

echo '<table class="collapsed" id="news"+postId>';

dann auch einfach id="news und dann die in var postid eingegebene zahl eingebe funktioniert es aber auch nur mit der ersten news.

das heißt wenn ich 2 oder 3 news da habe und auf den Titel der 2 news klicke öffnet sich aber der Spoiler der ersten news -.-

Ich hoffe es versteht einer mein problem und kann mir dann vielleicht helfen.

Vielen dank im Vorraus.

MFG Ryje
 
Zuletzt bearbeitet:
Moin Ryje,

für dein Anliegen wäre es das Sinnvollste, wenn du die Tabellen bspw. in einer Schleife ausgibst, in welcher immer die aktuelle $postID verfügbar ist, dann sollte dein letzter Versuch funktionieren.

Falls das(die Schleife) nicht möglich ist, müsste man sehen, wie du das Ganze überhaupt ausgibst, und ob es mit dieser Form der Ausgabe überhaupt zu Bewerkstelligen ist.(insbesondere wäre dabei die Position des Links zu der dazugehörigen Tabelle von Interesse)
 
das ist mal der ganze Code um mal zusehen wie es ist aber nicht wirklich funktioniert ^^
hoffe das sich hier der fehelr vielleicht finden lässt

mfg Ryje


include("dbconnect.php");
include("config.php");
// Auslesen der News
$q_select="SELECT * FROM tp_news ORDER BY startdatum DESC, startzeit DESC LIMIT 0,$intNewsAnz";
$r_select=mysql_query($q_select);
$num=mysql_num_rows($r_select);
for ($i=0; $i<$num; $i++)
{
$id=mysql_result($r_select, $i, "id");
$idi=mysql_result($r_select, $i, "id");
$titel=mysql_result($r_select, $i, "titel");
$news=mysql_result($r_select, $i, "nachricht");
$startdate=mysql_result($r_select, $i, "startdatum");
$starttime=mysql_result($r_select, $i, "startzeit");
$autor=mysql_result($r_select, $i, "autor");
echo '<script type="text/javascript">';
echo 'var postId="$id";';
echo '</script>';
echo '<tr class="hilite">';
echo '<td style="width: 45px;" align="center">';
echo $i;
echo '</td>';
echo '<td style="width: 350px;">';
echo '<div class="hdl">';
echo '<h3><a href="javascript:toggleEntry(postId);">';
echo $titel;
echo '</a> </h3><small>';
echo $autor;
echo "</small></div></td>";
echo '<td style="width: 77px" align="center"><span class="date">'. $startdate.'</span></td>';
echo '</tr>';
echo '<tr class="embedd hilite">';
echo '<td style="width: 460px;" colspan="3">';
echo '<div id="styleContainer"></div>';
echo '<table class="collapsed" id="news"+postId>';
echo '<tr>';
echo '<td class="generalNews">';
echo $news;
echo '</td>';
echo '</tr>';
echo '</table>';
echo '</td>';
echo '</tr>';
}
 
Ersetze mal jene Zeile:

Code:
echo '<table class="collapsed" id="news"+postId>';

hierdurch:
Code:
echo '<table class="collapsed" id="news'.$id.'">';


und dieses:
Code:
echo '<h3><a href="javascript:toggleEntry(postId);">';
...hiermit

Code:
echo '<h3><a href="javascript:toggleEntry('.$id.');">';


Folgendes kannst du komplett entfernen:
Code:
echo '<script type="text/javascript">';
echo 'var postId="$id";';
echo '</script>';
 
okay ich werde es direkt mal testen.

vielen dank schonmal und ich melde mich nochmal obs t der nicht ^^

MFG Ryje
 
So wie gesagt melde ich mich nochmal.

Funktioniert einwandfrei ;)

Vielen Vielen dank für die schnelle Hilfe und sehr gut erklärt.

MFG Ryje
 
Zurück