Shoutbox Layout Probleem

Status
Niet open voor verdere reacties.

indexspelen

Gebruiker
Lid geworden
17 mei 2008
Berichten
90
Ik heb dus een code van een shoutbox gevonden,
Alles werkt enzo;

Maar de layout is.. helemaal niks.
Dat wil ik dus veranderen.

Dit probeer ik te bereiken:
Het eerste bericht: bgcolor= yellow
Het tweede bericht: bgcolor= red
Het derde bericht: bgcolor= yellow
etc...

Ik weet dat dit mogelijk is met Css ID's.
Maar hoe zorg ik nu dat die 2 ID's elkaar afwisselen?

Alvast bedankt.

( Indien de vraag niet duidelijk is, gelieve dit te zeggen )
 
Door een counter mee te laten lopen wanneer de berichten uitgelezen worden (Dat zal met een FOR zijn of met een WHILE)

Zoiets wordt het dan
PHP:
// Database model
$counter = 0;

$query = "SELECT veld1, veld2 FROM tabel";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)) {
  // Controleren of de counter even is of niet
  // Bij even wordt hij geel, anders wordt ie rood
  $style = ($counter % 2) == 0 ? 'yellow' : 'red';
  // Boel weergeven
  echo '<div style="bgcolor: '. $style .'">'. $row['veld1'] .'</div>';
  // Counter met 1 verhogen
  $counter++;
}
Bij een FOR hoeft het een counter niet nodig te zijn, dan zou je gewoon je $i kunnen gebruiken.
 
Ik snap niet helemaal hoe ik dit moet invoegen in mijn code;
En zou het misschien zonder MySQL kunnen?

<?php

require_once("config.php");
$name = $_POST['name'];
$message = $_POST['message'];
$ip = $_POST['ip'];
$mlen = strlen($message);
$maxlength = 150;
$date = date("M jS Y");

if ($_POST['submit']) {
if ($name == "") {
echo "<strong>Error: Please enter your nickname.</strong>";
}
else if ($message == "") {
echo "<strong>Error: No message to be sent.</strong>";
}
else if ($mlen > $maxlength) {
echo "<strong>Error: Message too long.</strong>";
}
else {
$db = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname) or die(mysql_error());
mysql_query("INSERT INTO shoutbox(name,message,date,ip) VALUES('$name','$message','$date','$ip')");
}
}

$db = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname) or die(mysql_error());
$query = "SELECT * FROM shoutbox ORDER BY id DESC LIMIT 20";
$result = mysql_query($query);

echo "<div id=\"contentbox\">\n";
echo "<ul id=\"shoutboxmessage\">\n";
while($r = mysql_fetch_array($result)) {
$name = $r['name'];
$name = strip_tags($name);
$message = $r['message'];
$message = strip_tags($message);
echo "<li><strong>$name</strong>: $message</li>\n";
}
echo "</ul>\n";
echo "</div>\n";

mysql_close($db);

?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<strong>Nickname:</strong><br/>
<input type="text" name="name" maxlength="20"><br/>
<strong>Message:</strong><br/>
<textarea name="message"></textarea><br/>
<input type="submit" name="submit" value="Shout It!">
<input type="hidden" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>">
</form>
</div>


:l
 
Wat snap je er niet aan? Jouw code heeft de zelfde opbouw als degene welke ik gauw in elkaar draaide.

Deze regels
PHP:
while($r = mysql_fetch_array($result)) {
$name = $r['name'];
$name = strip_tags($name);
$message = $r['message'];
$message = strip_tags($message);
echo "<li><strong>$name</strong>: $message</li>\n";
}
zul je veranderen in
PHP:
$counter = 0;
while($r = mysql_fetch_assoc($result)) {
  $name = strip_tags($r['name']);
  $message = strip_tags($r['message']);
  $style = ($counter % 2) == 0 ? 'yellow' : 'red'; 
  echo '<li style="bgcolor: '. $style .'"><strong>'. $name.' </strong>: '. $message .'</li>'. "\n";
  $counter++;
}
Zo zou het goed moeten gaan.
 
:rolleyes:

Bedankt,
Ik ben pas begonnen met php dusja..
Ik heb dit natuurlijk ook niet zelf geschreven.
Maar ik begrijp wel hoe het ineenzit.

Bedankt voor je correcte en snelle reactie
 
Volgens mij is de juiste CSS property:

PHP:
'<li style="background: '. $style .'">

i.p.v.

PHP:
'<li style="bgcolor: '. $style .'">
 
Ik heb het probleem al opgelost ;')

Dit topic mag voor mij gesloten worden.

De shoutbox werkt nu precies zoals ik wil :)
 
@ErikBooy007: Klopt kwam ik later ook achter maar had de moeite niet gedaan het aan te passen.

@indexspelen: Topics sluiten doen we alleen wanneer ze in overtreding zijn met de voorwaarden. :)
 
Ik heb je scriptje wel wat moeten verandere voor m'n shoutbox, devil.

Ik heb nu gezorgd met css dus dat de achtergrond word bepaald,
en dan worden 'red' & 'yellow' dus de ID's.

Misschien wat ongewoon ^^ maar het werkt wel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan