WebslaveMedlem sedan maj 2002662 inlägg
Jag har ett litet problem och detta ska kanske hamna under databaser men det har ju med formulär och tables att göra.
På min sida har jag ett formulär där man kan fylla i text och skicka det till en databas som visar det på en annan sida. Problemet är nu att om man inte gör radbrytningar i textfältet så blir det inga radbrytningar när texten sedan skickas ut på den andra sidan, dvs att det blir väldigt brett. Jag har gjort så att när datan skickas ut från databasen så hamnar den inom en <pre></pre> tagg för att eventuella tabbar ska se ut som den som skickar det vill att det ska.
tabb:
<--- ett långt mellanslag (om ingen förstod vad jag menade, jag kan vara lite otydlig ibland)
Någon som har några idéer?
Patrik81Medlem sedan okt. 2001537 inlägg
Jag vet inte om det är användbart, men det är en tanke iallafall, och det är ju att du kan använda dig utav scriptet här:
http://www.webforum.nu/showthread.php?s=&threadid=40415
och sedan sätta en fast bredd på textfältet så att du kan räkna ut hur många tecken det får plats på en rad, eller något liknande... och mha den informationen tvinga fram en rdbrytning där...
eller så kanske det finns ett annat sätt som jag inte tänkt på... en tanke iaf.
MVH Patrik
WebslaveMedlem sedan maj 2002662 inlägg
Njae... jag vill inte att det ska finnas någon max storlek och jag kan inte skriva om... kan inte ett dyft javascript =)
Patrik81Medlem sedan okt. 2001537 inlägg
*illa* då har jag slut på idéer :(
Sorry
MVH Patrik
@ndersMedlem sedan juni 200026 914 inlägg
Kör du asp, php eller något annat? Det är i så fall där du får göra ersättningar av tab och radbrytningar innan du skickar html till läsaren.
Mvh,
WebslaveMedlem sedan maj 2002662 inlägg
Jag kör php. Har du några lösningar? =)
@ndersMedlem sedan juni 200026 914 inlägg
Nej, inte för php tyvärr. Men, jag flyttar iväg frågan till php-forumet, där jag tror att du kan få hjälp med just detta.
Prova även att göra en sökning i php-forumet på exempelvis radbrytningar.
Mvh,
WebslaveMedlem sedan maj 2002662 inlägg
WebslaveMedlem sedan maj 2002662 inlägg
Har inte hittat något men att tänka på är att de som skriver inläggen inte ska behöva koda alls utan abra skriva in sin text som de vill ha den och så ska det komma ut på samma sätt... vilket det inte gör i normalt fall =(
spangoMedlem sedan juni 20006 147 inlägg
Kan du inte prova med <pre style="max-width: 100%;">?
@ndersMedlem sedan juni 200026 914 inlägg
Jag är inte direkt någon kung på php, men jag ger mig på ett försök med en funktion i alla fall.
function fixText($strText) {
$strText = str_replace("\n", "<br>", $strText);
$strText = str_replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");
return $strText;
}
anropas:
echo fixText($array["databasfältet"]);
Just tab är lite klurigt eftersom tab inte finns i html, så jag ersatte med fyra non-breaking spaces.
Hoppas jag inte gjorde bort mig nu. :)
Mvh,
WebslaveMedlem sedan maj 2002662 inlägg
Om det fungerar så ska det nog bli bra... nu återstår bara en liten fråga... vart någonstans ska allt det där in??? *helt bakom flötet*
Här är koden som jag har:
<table border="0" cellspacing="0" cellpadding="0" class="tipstable01" width="90%">
<?
$länk = mysql_connect ("localhost", "******","******")
or die ("Kunde inte ansluta");
$databas = mysql_select_db("mindatabas");
$sql ="SELECT * FROM dikter ORDER BY datum DESC";
$result = mysql_query("$sql");
while($rad = mysql_fetch_array($result)){
?>
<tr>
<th width="50%"><span class="rubrik01"><?=$rad["titel"]?></span></th>
<th width="50%"><a href="mailto:<?=$rad['epost']?>" class="rubrik01"><?=$rad["namn"]?></a></th>
</tr>
<tr>
<td colspan="2">
<pre><span class="bodytext"><?=$rad["text"]?></span></pre>
</td>
</tr>
<tr>
<td align="right" colspan="2" height="20"><span class="datetext"><?=$rad["datum"]?></span></td>
</tr>
<?} mysql_close($länk);
?>
</table>
Om man ska pilla in det där... vart ska man göra det?
@ndersMedlem sedan juni 200026 914 inlägg
Tja, detta borde lira:
<table border="0" cellspacing="0" cellpadding="0" class="tipstable01" width="90%">
<?
$länk = mysql_connect ("localhost", "******","******")
or die ("Kunde inte ansluta");
$databas = mysql_select_db("mindatabas");
$sql ="SELECT * FROM dikter ORDER BY datum DESC";
$result = mysql_query("$sql");
while($rad = mysql_fetch_array($result)){
?>
<tr>
<th width="50%"><span class="rubrik01"><?=$rad["titel"]?></span></th>
<th width="50%"><a href="mailto:<?=$rad['epost']?>" class="rubrik01"><?=$rad["namn"]?></a></th>
</tr>
<tr>
<td colspan="2">
<pre><span class="bodytext">[b]<?=fixText($rad["text"])?>[/b]</span></pre>
</td>
</tr>
<tr>
<td align="right" colspan="2" height="20"><span class="datetext"><?=$rad["datum"]?></span></td>
</tr>
<?} mysql_close($länk);
?>
</table>
<?
function fixText($strText) {
$strText = str_replace("\n", "<br>", $strText);
$strText = str_replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");
return $strText;
}
?>
Mvh,
WebslaveMedlem sedan maj 2002662 inlägg
Tackar så JÄTTE MYCKET... ni killar rockar =)
WebslaveMedlem sedan maj 2002662 inlägg
Fast tydligen funkade det inte... får detta felmedelande:
Warning: Wrong parameter count for str_replace() in /home/virtual/site9/fst/var/www/html/nydesign/html/dikter/index.php on line 100
Men om jag tar bort:
$strText = str_replace("\t", " ");
Så funkar det... får kanske klara mig utan om ni inte kommer på något annat =)
@ndersMedlem sedan juni 200026 914 inlägg
Du har glömt att ange den sista parametern i funktionen, $strängensomskareplaceasi efter mellanslagen i funktionsanropet.
Mvh,
WebslaveMedlem sedan maj 2002662 inlägg
Det ska vara 4 tecken för mellanslag där men jag tänkte inte på att det blev tomt när jag kopierade in det... men är det så att man måste ha 4 mellanslag för att det då ska fungera?
@ndersMedlem sedan juni 200026 914 inlägg
Just tab är lite klurigt eftersom tab inte finns i html, så jag ersatte med fyra non-breaking spaces.
Ta så många nonbreaking spaces du vill.
@ndersMedlem sedan juni 200026 914 inlägg
Det var alltså jag som skrivit fel i funktionen, eftersom det saknas ett argument.
Så här ska det se ut:
<?
function fixText($strText) {
$strText = str_replace("\n", "<br>", $strText);
$strText = str_replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;", $strText);
return $strText;
}
?>
Nu ska det väl fungera bättre. :)
Mvh,