07. september 2004 - 22:03
Der er
18 kommentarer og 2 løsninger
Popup hvordan det?
Hej eksperter. Jeg vil lige starte med at poste mit script: <td height="15" width="15%" class="<?php echo $class; ?>"> <? echo wordwrap($row['tekst'], 30, "<br />\n"); ?></td> Det jeg gerne vil høre er hvordan jeg får lavet så efter de 20 ord så kommer der et link som hedder Læs mere, når man så trykker på den så kommer der en popup med med størrelsen evt. 100 x 100 og så står hele $row[tekst] derinde, hvordan gør jeg det ?
Annonceindlæg fra Barco
07. september 2004 - 22:03
#1
jeg synes jeg har prøvet alt
07. september 2004 - 22:16
#2
Jeg har følgende funktion der løser dit første problem med hensyn til at klippe teksten: /* Funktion der afkorter et stykke tekst og sætter 3 '...' i enden */ /* String klip(String tekst [, Integer laengde [, Integer tolerance]]) */ function klip($tekst, $laengde = 10, $tolerance = 10) { $punktum = strpos(substr($tekst, $laengde - $tolerance, 2*$tolerance), '.'); /* position af punktum */ $mellemrum = strpos(substr($tekst, $laengde - $tolerance, 2*$tolerance), ' '); /* position af mellemrum */ $endelse = '...'; /* punktummer hvis mere tekst */ if (strlen($tekst) <= $laengde + $tolerance) { $slut_pos = strlen($tekst); /* slutposition = slut på tekst, da denne er kortere end $laengde + $tolerance */ $endelse = ''; /* ikke nogen endelse */ } elseif ($punktum !== false) { $slut_pos = $laengde - $tolerance + $punktum; /* slutposition = punktum */ } elseif ($mellemrum !== false) { $slut_pos = $laengde - $tolerance + $mellemrum; /* slutposition = mellemrum */ } else { $slut_pos = $laengde; /* slutposition $laengde (ikke noget at gøre - klip ord over) */ } $klippet_tekst = substr($tekst, 0, $slut_pos) . $endelse; /* udskriv del + evt. punktummer */ return $klippet_tekst; } Popuppen bør du spørge om i JavaScript kategorien, de har mere forstand på den slags der :)
07. september 2004 - 22:16
#3
Linket til popuppen: <a href="#" onClick="vis=window.open('vistekst.php','vis','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=100,height=100'); return false;">Læs mere...</a> vistekst.php er så siden som popperup og har hele teksten... hjalp det?
07. september 2004 - 22:21
#4
googolplex - hvor skal det indsættes ? hvis jeg skriver siden her: <?php ini_set('error_reporting', "E_ALL"); require("conn.php"); ?> <?php if(isset($_GET["id"])) { mysql_query("DELETE FROM ftc_ann WHERE id='". $_GET["id"] ."'") or die(mysql_error()); echo "<b><font face=Verdana size=1>Annonchen blev slettet!</font></b><br><br>"; } echo "<table>\n"; $res = mysql_query("SELECT * from ftc_ann ORDER BY id DESC LIMIT 0, 100"); while($row = mysql_fetch_array($res)) { $i++; if($i%2 == 1) { $class = "slet1"; }else{ $class = "slet2"; } ?> <div align="center" class="tekst_normal"> <table width="100%" border="0" cellpadding="0" cellspacing="0" height="56" class="<?php echo $class; ?>"> <tr> <td height="29" rowspan="2"><b><br> </b> <table width="69%" height="37" border="0" cellpadding="0" cellspacing="0"> <tr> <td><b><a href="?id=<?=$row['id']?>"><img src="grafik/slet.gif" width="32" height="32" border="0"></a></b></td> <td><a href="redig_ann.php"><img src="grafik/rediger.gif" width="32" height="32" border="0"></a></td> </tr> </table></td> <td height="29" rowspan="2" width="9%"> <div align="center"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="<?php echo $class; ?>"> <tr> <td> <div align="center"><a href="java script:popImage('<?=$row[upfile]?>','<? echo $i; ?>')"><br> <img src="grafik/foto.gif" width="32" height="22" border="0"></a></div></td> </tr> </table> </div> </td> <td height="14" width="13%" class="<?php echo $class; ?>"><b>Brugernavn:</b></td> <td height="14" width="13%" class="<?php echo $class; ?>"><b>Navn:</b></td> <td height="14" width="13%" class="<?php echo $class; ?>"><b>Email:</b></td> <td height="14" width="13%" class="<?php echo $class; ?>"><b>Telefon:</b></td> <td height="14" width="13%" class="<?php echo $class; ?>"><b>Adr:</b></td> <td height="14" width="13%" class="<?php echo $class; ?>"><b>Tekst:</b></td> <td height="14" width="13%" class="<?php echo $class; ?>"><b>Pris:</b></td> </tr> <tr> <td height="15" width="13%" class="<?php echo $class; ?>"> <?=$row[bruger]?> <div align="left"></div></td> <td height="15" width="13%" class="<?php echo $class; ?>"> <?=$row[navn]?> <div align="left"></div></td> <td height="15" width="13%" class="<?php echo $class; ?>"> <?=$row[email]?> <div align="left"></div></td> <td height="15" width="14%" class="<?php echo $class; ?>"> <?=$row[tlf]?> <div align="left"></div></td> <td height="15" width="16%" class="<?php echo $class; ?>"> <?=$row[adr]?> <div align="left"></div></td> <td height="15" width="15%" class="<?php echo $class; ?>"> <? echo wordwrap($row['tekst'], 30, "<br />\n"); ?></td> <td height="15" width="15%" class=" class="<?php echo $class; ?>"> <?=$row[pris]?> <div align="left"></div> </table> <? echo "</tr></td>\n"; } echo "</table>"; ?> </div> </td> </tr> </table> kan du så sætte den ind :)?
07. september 2004 - 22:22
#5
bare så det ikke bliver lavet forkert
07. september 2004 - 22:28
#6
Smid funktionen ind i starten (eller inkluder den så den ikke ligger og fylder). Derefter: ----- while($row = mysql_fetch_array($res)) { $i++; if($i%2 == 1) { $class = "slet1"; }else{ $class = "slet2"; } $klippet_tekst = klip($row['tekst']); ?> ----- SAMT ----- <td height="15" width="15%" class="<?php echo $class; ?>"> <? echo $klippet_tekst; ?></td>
07. september 2004 - 22:29
#7
Sidste linie skal erstatte: <td height="15" width="15%" class="<?php echo $class; ?>"> <? echo wordwrap($row['tekst'], 30, "<br />\n"); ?></td>
07. september 2004 - 22:46
#8
Hvis du stadig vil havde javascriptet kan det laves sådan her: <script> function showtext(str) { var oWin = window.open('','name','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=100,height=100'); oWin.document.body.innerHTML = str; } </script> Så kan du lave dit link som: <a href="#" onclick="showtext('<? echo $row['tekst']?>');">Læs mere...</a>
07. september 2004 - 22:48
#9
jeg er lige igang med at prøve noget andet: hvorfor siger den: Unknown column 'msg' in 'field list' her: <?php ini_set('error_reporting', "E_ALL"); require("conn.php"); ?> <?php if(isset($_GET["id"])) { mysql_query("DELETE FROM ftc_ann WHERE id='". $_GET["id"] ."'") or die(mysql_error()); echo "<b><font face=Verdana size=1>Annonchen blev slettet!</font></b><br><br>"; } echo "<table>\n"; $res = mysql_query("SELECT `id`, `bruger`, `navn`, `email`, `tlf`, `adr`, `pris`, LEFT(msg, 60) as `tekst` FROM `ftc_ann` ORDER BY `id` DESC LIMIT 0, 100")or die(mysql_error()); while($row = mysql_fetch_array($res)) $row["text"] = str_replace("\n","<br>",$row["text"]); { $i++; if($i%2 == 1) { $class = "slet1"; }else{ $class = "slet2"; } ?> når det virker på en anden sidE?
07. september 2004 - 22:49
#10
eagleeye -- fungere den med den funktion som googolplex skrev eller skal dit bare sætte ind som det er ?
07. september 2004 - 22:50
#11
for den skal vel tage efter id, når den kan skal læse et bestemt id eller hvad ?
07. september 2004 - 22:58
#12
Nej den tager ikke et id, den tager teksten i $row['tekst'] og ligger ind i en popup. Det kan laves sådan den tager et id, men så skal du lave en ny .php fil som får id'et og henter det fra databasen.
07. september 2004 - 23:12
#13
fedt nok eagleeye, det virker ok. hvordan kan jeg ligge en bg farve på det vindue der åbner ? og så lige lave så der står 20 bogstaver fra teksten, og derefter kommer "læs mere" ?
07. september 2004 - 23:25
#14
Du kan udvide det sådan her baggrunds farven kan styres med bgcolor="#909090" : function showtext(str) { var oWin = window.open('','name','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=100,height=100'); oWin.document.write ('<body bgcolor="#909090"></body>'); oWin.document.body.innerHTML = str; } </script> Linket kan lavet i stil med dette så: <td height="15" width="15%" class="<?php echo $class; ?>"> <? echo substr($row['tekst'],0,20); ?><a href="#" onclick="showtext('<? echo $row['tekst']?>');">Læs mere...</a></td>
07. september 2004 - 23:39
#15
<body bgcolor="#909090"></body> i denne kan jeg der bare smide html koder ind hvis der skal laves noget ? som f.eks. fonts osv? og class
07. september 2004 - 23:42
#16
Ja det kan du men styles kræver enten de er definfere i koden eller link til stylesheet: function showtext(str) { var oWin = window.open('','name','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=100,height=100'); oWin.document.write ('<body bgcolor="#909090"></body>'); oWin.document.write ('<font size="4">HEJ</font><br>'); oWin.document.write (str); oWin.document.write ('</body>'); } </script>
07. september 2004 - 23:54
#17
okay, det siger ´jeg tusind tak for !!
hvis du har lyst kan du så hjælpe mig med et stort problem her:
http://exp.dk/spm/537109
07. september 2004 - 23:55
#18
og smider du lige et svar :)
07. september 2004 - 23:56
#19
Ok her et svar :)
07. september 2004 - 23:58
#20
mange tak alle -lukket-
Vi tilbyder markedets bedste kurser inden for webudvikling