Just nu i M3-nätverket
Gå till innehåll

formatering


jan-erik

Rekommendera Poster

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]

Länk till kommentar
Dela på andra webbplatser

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.

 

Länk till kommentar
Dela på andra webbplatser

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

 

Typ:

select.input {
width: 20em;
}

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...