Avatar billede xeox Nybegynder
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 ?
Avatar billede xeox Nybegynder
07. september 2004 - 22:03 #1
jeg synes jeg har prøvet alt
Avatar billede googolplex Novice
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 :)
Avatar billede jansen82 Nybegynder
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?
Avatar billede xeox Nybegynder
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 :)?
Avatar billede xeox Nybegynder
07. september 2004 - 22:22 #5
bare så det ikke bliver lavet forkert
Avatar billede googolplex Novice
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>
Avatar billede googolplex Novice
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>
Avatar billede eagleeye Praktikant
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>
Avatar billede xeox Nybegynder
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?
Avatar billede xeox Nybegynder
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 ?
Avatar billede xeox Nybegynder
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 ?
Avatar billede eagleeye Praktikant
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.
Avatar billede xeox Nybegynder
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" ?
Avatar billede eagleeye Praktikant
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>
Avatar billede xeox Nybegynder
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
Avatar billede eagleeye Praktikant
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>
Avatar billede xeox Nybegynder
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
Avatar billede xeox Nybegynder
07. september 2004 - 23:55 #18
og smider du lige et svar :)
Avatar billede eagleeye Praktikant
07. september 2004 - 23:56 #19
Ok her et svar :)
Avatar billede xeox Nybegynder
07. september 2004 - 23:58 #20
mange tak alle

-lukket-
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester