Just nu i M3-nätverket
Jump to content

formatering


jan-erik

Recommended Posts

Jag har följande php/mysql-snutt, tänkt att man ska kunna välja ur en select-lista ett anta aktiivteter som hämtas från en tabell. Det funkar precis som det ska, men eftersom jag har 3 st fält så blir det en rörig formatering i selectlistan. Jag skulle alltså vilja ha en fix längd för vart o ett av de ingående fälten. Har provat med att först förlänga och sedan göra substring

$evname.="...................";

$evname=substr($evname,0,20);

men det blev inte heller riktigt bra.

 

Någon som har en god ide?

 

<?

$today=date("ymd");

$query = "SELECT * FROM events WHERE (evdate > $today or evdate = $today) ORDER BY 'evdate' ";

$result = mysql_query($query);

?>

<tr><td>

<form>

<select name="eval" class="input">

<?

while ($row = mysql_fetch_array($result))

{ extract($row);

$rad=$evdate.' '.$evname.' '.$evplats;

 

echo "<option class='input' value='$rad'>$rad\n";

} ?>

</select>Välj aktivitet

</form>

</td></tr>

</table>

 

 

 

[inlägget ändrat 2007-01-07 14:14:52 av jan-erik]

Link to comment
Share on other sites

Jimmy L.A. Müller

Med följande SQLmodifiering så får du en fix längd på raden om det är vad du är ute efter.

SELECT CONCAT(evdate,' - ',
  CASE WHEN length(evname) > 8 THEN CONCAT(LEFT(evname,5),'...') 
    WHEN length(evname) < 8 THEN RPAD(evname,8,' ') 
    ELSE evname 
  END,' - ', 
  CASE WHEN length(evplats) > 8 THEN CONCAT(LEFT(evplats,5),'...')
    WHEN length(evplats) < 8 THEN RPAD(evplats,8,' ') 
    ELSE evplats 
  END) rad 

Antar att evdate redan är en fast längd.

 

Link to comment
Share on other sites

Använd CSS och sätt width-egenskapen på select-elementet till önskad längd.

 

Typ:

select.input {
width: 20em;
}

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...