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

titelbrytning


jan-erik

Rekommendera Poster

Jag skapar en TITLE genom att lägga ihop ett antal variabler. I stil med $title=$a.$b.$c;

Om jag vill ha en brytning < br> mellan dessa variabler - hur gör jag då?

jea

 

 

Länk till kommentar
Dela på andra webbplatser

Trodde jag oxå, men detta funkar inte:

$titelx=$titelx.$evplats[$i].' '.$evname[$i].'<br/>';

 

Jag bygger alltså upp en titelsträng successivt och vill ha en brytning mellan varje del. Men den skriver ut allt i en enda sträng med <br/> och allt.

 

Länk till kommentar
Dela på andra webbplatser

Men den skriver ut allt i en enda sträng med <br/> och allt.

Det är ju det du ber den göra.

Ändra:

$titelx=$titelx.$evplats[$i].' '.$evname[$i].'<br/>';

till:

$titelx=$titelx.'<br/>'.$evplats[$i].'<br/>'.$evname[$i].'<br/>';

Om du vill ha en radbrytning mellan varje del, annars blir det ju inget mellan de två första delarna, ett space mellan del två och tre samt en radbrytning sist.

 

Edit: Om du menar att du ser <br/> när du tittar på sidan beror det nog mer på hur du skriver ut (alt. vad du skickar tillbaka för innehåll i övrigt) än på hur du bygger strängen.

[inlägget ändrat 2006-10-26 00:07:27 av fhe]

Länk till kommentar
Dela på andra webbplatser

Nja....

 

$titelx=$titelx.$evplats[$i].' '.$evname[$i].'<br/>';

 

Om jag först har Namn1 och Plats1 så blir titelx = "namn1 plats1"

sedan kommer Namn2 och Plats2 så blir titelx ="namn1 plats1 namn2 plats2"

 

 

Om jag då lägger till <br/> så som du föreslog så blir

 

titelx ="namn1 plats1 <br/> namn2 plats2 <br/>", vilket ju ser snyggt ut men som tyvärr inte leder till nån brytning, utan strängen skrivs ut exakt som ovan. Däri ligger mitt problem!

 

 

Länk till kommentar
Dela på andra webbplatser

Felet är alltså i så fall inte att du inte bygger strängen korrekt utan att du inte skickar ut den som HTML eller till något som förstår HTML.

 

$titelx=$titelx.$evplats[$i].' '.$evname[$i].'<br/>';

PHP kommer om du gör som ovan att göra en sträng som består av strängen själv, följt av vad som råkar ligga i $evplats[$i] följt av ett tomrum, följt av $evname[$i] och därefter ett <br/>.

PHP gör inget annat magiskt med det.

 

Om du däremot i ett senare skede skickar strängen till en funktion som byter ut alla HTML-reserverade tecken, kan <br/> mycket väl bli utbytt mot t.ex. &lt;br/&gt; och då kommer en HTML-visare (alltså en webb-browser att visa det som just <br/> och inte som en radbrytning. Det framgår förmodligen rätt snabbt om du gör View Source/Visa källa på sidan när du tittar på den.

 

Ett annat alternativ är att din PHP genererar ren text och inte html, antingen för att hela sidan är taggad som text/plain eller för att du t.ex skriver ut variabeln inom en &lt;textarea>&lt;/textarea>.

 

Oavsett vilket så befinner sig inte felet i den enda kodrad du har klistrat in här och därför kommer du inte att få någon hjälp. Så istället för att göra alla gissningar om var felet befinner sig åt oss och sen ge oss den lilla information du tror är intressant föreslår jag att du försöker minimera felet till någon liten php-snutt som du klistrar in i sin helhet.

 

 

Länk till kommentar
Dela på andra webbplatser

Tack för hjälpen så här långt. Anledningen till att jag inte lade ut mer kod än den enskilda kodraden var att jag stirrade mig blind på att felet låg i kodningen av denna rad. Men av vad du skrev förstår jag att det ligger lite "djupare".

Därför ändra jag frågeställningen till "Hur ska jag få title att funka för nedanstående kodsnutt? Jag har förenklat koden lite, men problemet är detsamma.

DVS, vad ska jag ersätta frågetecknen efter title= med?

jea

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title></title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

<?

$titelx="";

$evplats[0]="Plats1";

$evname[0]="Namn1";

$evplats[1]="Plats2";

$evname[1]="Namn2";

$num=2;

$i=0;

while ($i < $num)

{

$titelx=$titelx.$evplats[$i].' '.$evname[$i].' '.'<br/>'.' ';

$i++;

}

echo $titelx;

?>

<table><tr>

<td title=?????????>Text</td>

</tr></table>

</body>

</html>

 

 

Länk till kommentar
Dela på andra webbplatser

Title är ett attribut som tar en text-sträng, där kan man inte klistra in någon HTML, således kommer ditt <br/> att bli just <br/>.

 

Om den som surfar till till sida har något som bryr sig om radbrytningar i title (det är högst friviliigt och personligen skulle jag nog säga att man gjort fel om man förutsätter att det går) så är det förmodligen så att browsern vill ha en radbrytning (till skillnad från en html-tag). Då skulle det kunna fungera med:

 

$titelx=$titelx.$evplats[$i].' '.$evname[$i].' '."\n".' ';

(notera citationstecken runt \n, annars får du de två tecknen \ och n i din sträng).

 

Det kan kanske också vara praktiskt att lära sig concatenate-operatorn .= så att du kan skriva:

$titelx.=$evplats[$i].' '.$evname[$i].' '."\n".' ';

 

Personligen tror jag inte det kommer att fungera, du borde göra rätt istället för att försöka hitta på ett sätt att använda title-attributet till något det inte är avsett för.

 

 

Länk till kommentar
Dela på andra webbplatser

Du kan inte ha HTML inuti ett title-attribut och det finns inget (standardiserat) sätt att lägga in radbrytningar. Tanken är att title-texten ska vara en kort text på en rad. Om du vill ha nåt mer avancerat får du använda nån Javascript-variant (t ex en sån som eforum använder bl a för "Senaste obesvarade trådar")

 

Länk till kommentar
Dela på andra webbplatser

fhe:

"... du borde göra rätt istället för att försöka hitta på ett sätt att använda title-attributet till något det inte är avsett för."

 

Du är säkert väldigt duktig, men jag misstänker skarpt att du ger råd mest för att få tillfälle att platta till. Vad får dej att tro att jag inte *försöker* "göra rätt"?

Och varför försöker du själv få något att funka som du vet inte är rätt? Tänk va enkelt det varit att med en gång säga att så kan man inte göra.

 

Men tack ändå!

jea

 

 

 

Länk till kommentar
Dela på andra webbplatser

men jag misstänker skarpt att du ger råd mest för att få tillfälle att platta till.

Nej jag har ingen vilja eller behov av att "platta till någon", jag skrev t.om en liten php-snutt för att se hur olika browsers reagerade på lite olika sätt att använda title.

 

Och varför försöker du själv få något att funka som du vet inte är rätt? Tänk va enkelt det varit att med en gång säga att så kan man inte göra.

Jag skrev, så fort du berättat att det var i title-attributet du försökte lägga in texten, att dessa inte är ämnade för sånt. Jag kunde knappast ha skrivit det innan du berättade vad du försökte göra, eller hur?

 

Att jag sedan i samma inlägg föreslog att du skulle göra på ett annat sätt var bara för att jag tyckte att det var onödigt att vänta med den uppmaningen till nästa inlägg. Jag förväntade mig inte att du skulle veta att det inte var rätt sätt att göra det på men nu råkade jag berätta för dig att det inte är det och föreslå att du istället hittar på ett bättre sätt.

 

Vad som är rätt beror på vad det är för information, om det verkligen är en flygande tooltip med massor med text du vill ha så är det smidigaste antagligen att antingen lära sig hur man använder lager eller att helt enkelt nyttja något färdigt (t.ex overlib).

 

Dessutom kan det öka möjligheten att man faktiskt får hjälp om man inte kommer med snorkiga kommentarer bara för att någon påpekat att den väg man valt inte nödvändigtvis är rätt väg.

 

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...