Gå til innhold

f00b

Medlemmer
  • Innlegg

    382
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av f00b

  1. Absolutt. Gå til Vis - Verktøylinjer og hent frem verktøylinjen Skjema. Så bytter du ut understrekningene dine med tekstfelter fra denne verktlylinjen, likeledes sjekkbokser og anneen moro.

    Ved å høyreklikke disse delene kan du sette egenskaper, som f.eks gyldig/ugyldig tekst, maks lengde, datoinput og annen moro.

    Når du er ferdig, klikker du bare hengelås-knappen for å låse dokumentet. Nå får du bare skrevet i feltene og kan tabbe mellom dem. Lås opp igjen for redigering.

     

    HTH. Beste hilsen Harald

    Herlig!! Tusen takk :D

  2. Jeg er klar over at overskriften her er ganske dårlig, men jeg kom ikke på noe bedre.

     

    Jeg har et dokument som ser slik ut:

    ----------------------------------------------------

    Overskrift

     

    Navn: ____________________

    Adresse: ____________________

     

    Sjekkboks 1: 0

    Sjekkboks 2: 0

     

    Bunntekst: Dato

    ----------------------------------------------------

     

    Jeg ønsker å kunne låse "Navn:" og "Adresse:" slik at jeg kun kan skrive i feltet som er bak navn og adresse, og når jeg har markøren på feltet bak navn, så hopper jeg ned til neste felt ved å bruke 'TAB' knappen.

     

    Er dette mulig å gjøre i MS Word 2003?

  3. Har bedt moderator om å flytte tråden over til PHP nå :)

     

    // Henter info fra database
    $result = mysql_query("SELECT avdeling, navn, adresse, postnummer, poststed, tlf FROM butikker ORDER BY avdeling ASC");
    
    // Definerer Y posisjon til tekst
    $y = 735;
    
    // Printer tekst fra $result - Første post
    pdf_setfont($pdf, $font2, 8);
    while ($row = mysql_fetch_array($result )) {
    pdf_show_xy($pdf, $row['avdeling'], 70, 735);
    pdf_show_xy($pdf, $row['navn'], 99, 735);
    pdf_show_xy($pdf, $row['adresse'], 235, 735);
    pdf_show_xy($pdf, $row['postnummer'], 375, 735);
    pdf_show_xy($pdf, $row['poststed'], 405, 735);
    pdf_show_xy($pdf, $row['tlf'], 475, 735);
    }
    // Printer tekst fra $result - Andre post
    while ($row = mysql_fetch_array($result )) {
    pdf_show_xy($pdf, $row['avdeling'], 70, $y - 15);
    pdf_show_xy($pdf, $row['navn'], 99, $y - 15);
    pdf_show_xy($pdf, $row['adresse'], 235, $y - 15);
    pdf_show_xy($pdf, $row['postnummer'], 375, $y - 15);
    pdf_show_xy($pdf, $row['poststed'], 405, $y - 15);
    pdf_show_xy($pdf, $row['tlf'], 475, $y - 15);
    }

     

    Problemet her er at alt (all teksten i alle avdelinger) samles på èn linje, altså linjen med posisjon 735. Jeg er på en eller annen måte nødt til å få definert i while loopen at den skal søke etter neste avdeling som inneholder data, få så å gå videre tror jeg?

  4. Takk for svar, det stemmer at x og y er posisjoner ja. Når jeg bruker:

    SELECT avdeling, navn, adresse, postnummer, poststed, tlf FROM butikker WHERE id > 1 ORDER BY avdeling ASC

    Så printer den alle avdelingene, som jo er riktig. Jeg forstår hva du mener med å bruke en loop som automatisk plasserer hver linje - men jeg får en feil når jeg bruker denne koden:

    y = 705;
    while($row = mysql_fetch_array( $result )) {
    y = y + 15;
    pdf_show_xy($pdf, $row['avdeling'], 70, y);

    Parse error: syntax error, unexpected '=' in C:\Wamp\www\database\oversikt.php on line 124

     

    Det er mulig at denne burde vært under PHP, men jeg trodde det var SQL kommandoen som måtte endres for å få dette til å fungere - derfor postet jeg den her.

  5. Hvorfor henter du ikke bare infoen om alle avdelingene i samme select?

     

    SELECT avdeling, navn, adresse, postnummer, poststed, tlf FROM butikker WHERE id > 1 ORDER BY avdeling ASC

    Fordi jeg manuelt er nødt til å sette posisjonen til hver kolonne ettersom dette skal generes som pdf.

     

    Eksempel:

    pdf_show_xy($pdf, $row['poststed'] = Generer teksten fra en rad i kolonnen poststed.

    , 405, 720); = Setter posisjonen til teksten.

  6. Jeg har et php -script som genererer et PDF dokument vha. PDFLib. Koden jeg quoter i denne tråden skal i utgangspunktet generere et PDF som inneholder noen angitte kolonner fra en tabell, og sortere dette etter avdelingsnummer.

     

    // Denne koden velger neste avdeling etter id "1"

    $result = mysql_query("SELECT avdeling, navn, adresse, postnummer, poststed, tlf FROM butikker WHERE id > 1 ORDER BY avdeling ASC LIMIT 1");

    // Denne skriver data fra definerte kolonner i valgt avdeling

    while($row = mysql_fetch_array( $result )) {

    pdf_show_xy($pdf, $row['avdeling'], 70, 720);

    pdf_show_xy($pdf, $row['navn'], 99, 720);

    pdf_show_xy($pdf, $row['adresse'], 235, 720);

    pdf_show_xy($pdf, $row['postnummer'], 375, 720);

    pdf_show_xy($pdf, $row['poststed'], 405, 720);

    pdf_show_xy($pdf, $row['tlf'], 475, 720);

    }

    //-----------------------------------------------------------------------------

    // Denne koden velger neste avdeling etter id "2"

    $result = mysql_query("SELECT avdeling, navn, adresse, postnummer, poststed, tlf FROM butikker WHERE id > 2 ORDER BY avdeling ASC LIMIT 1");

    // Denne skriver data fra definerte kolonner i valgt avdeling

    while($row = mysql_fetch_array( $result )) {

    pdf_show_xy($pdf, $row['avdeling'], 70, 705);

    pdf_show_xy($pdf, $row['butikknavn'], 99, 705);

    pdf_show_xy($pdf, $row['adresse'], 235, 705);

    pdf_show_xy($pdf, $row['postnummer'], 375, 705);

    pdf_show_xy($pdf, $row['poststed'], 405, 705);

    pdf_show_xy($pdf, $row['tlf_butikk'], 475, 705);

    }

     

    Det som er problemet her, er at denne søker etter neste ID, og dersom jeg f.eks. oppretter og sletter en post, så vil det være en ID som ikke inneholder data. Så la oss si at vi tar avdeling 1-5 som eksempel, hvor avdeling 1 har ID1, avd 2 har ID2, avd 3 har ID4, avd 4 har ID5.

     

    Dersom jeg da bruker koden ovenfor, så vil den printe avdeling 3 to ganger, fordi den neste ID'en etter 2 er avdeling 3, og den neste etter ID 3 er også avdeling 3. Skjønner dere problemet?

    Dersom det er "hull" i IDene så vil det ødelegge slik at noen avdelinger vil bli printet flere ganger.

    Jeg tenkte på å bruke "WHERE avdeling > 2 ORDER BY avdeling ASC LIMIT 1");", men da vil jeg få det samme problemet dersom det det ikke er noen avdelinger mellom 3 og 5 f.eks.

     

     

    Noen som har noen tips til hvordan dette kan løses?

  7. Tenkte mest på HTML-delen av koden din. Hvor er starten på <p>-taggen? Bruk et CSS-dokument i stedet for inline-css som du har gjort (style="").

    HTML-delen? <p> taggen i det siste eksempelet skal jo ikke være der, var bare skrivefeil.

     

    Jeg har et har et CSS dokument som ser slik ut:

    .table-back{
    background:#fed;
    padding:5px;
    width:100%;
    border-bottom:10px solid #fff;
    }

     

    Og hele koden i eksempelet ovenfor er slik:

    <tableclass="table-back">

    <tr>

    <td><?phpecho nl2br($row['kommentar1']);?></td>

    </tr>

    </table>

     

    Men dette løser ikke problemet, selvom det står definer 100% i width i CSS dokumentet. Men jeg forstår fortsatt ikke hva som kan være så forferdelig med èn linje kode når du ikke har påpekt noe?

  8. Jeg tror du bør lese litt mer om HTML, samt hva funksjonen nl2br() egentlig gjør. Den koden du postet over er rett og slett forferdelig.

    Har forstått det slik at nl2br gjør slik at det blir linjebrudd dersom dataene i MySQL tabellen har linjebrudd. Det er èn linje med kode, har ikke funnet andre eksempler som har skilt seg noe særlig ut fra denne - så hadde satt pris på om du kunne forklare meg hva som var så forferdelig med denne?

  9. Jeg bruker PHP & MySQL, og har et felt hvor jeg skal vise innhold i en rad i MySQL tabellen.

     

    Koden jeg bruker her fungerer fint i Firefox:

    <tr>

    <td><?phpecho nl2br($row['kommentar1']);?></td>

    </tr>

    Teksten vises på følgende måte i Firefox:

    Dette er innholdet som ligger i tabellen "kommentar1"...

     

    Men dersom jeg bruker den samme koden i Internet Explorer så vises teksten slik:

    Dette

    er

    innholdet

    som...

    Problemet er altså at Internet Explorer lager ny linje for hvert ord.

     

     

    Dersom jeg bruker følgende kode derimot:

    <tr>

    <td><p><?phpecho nl2br($row['kommentar1']);?></p></td>

    </tr>

    Så vises teksten riktig i Internet Explorer, men ser veldig rar ut i Firefox. Den får bl.a. veldig stort mellomrom mellom linjene.

     

     

     

    Så det ser ikke ut som Firefox er så glad i <p> parameteren, mens Internet Explorer er avhengig av den. Så jeg lurer på om det er noen snedig måte å løse dette problemet på?

  10. Skal funke som bare det, ID'en kan du hente ved fra variablen $_GET['rapport'] på createpdf.php siden din.

     

     

    Siden du har knappen på:
    
    <form method="get" action="createpdf.php">
    <input type="hidden" name="rapport" value="<?php echo $row['id']; ?>">
    <input type="submit">
    </form>
    
    createpdf.php :
    
    <?php
    $rapportID = $_GET['rapport'];
    echo $rapportID;
    ?>

    Tusen takk, grunnen til at jeg ikke fikk dette til å fungere i starten var fordi jeg definerte det inni en allerede eksisterende form - men nå fungerer det :)
  11. <form method="get" action="createpdf.php">

    <input type="hidden" name="id" value="<?php echo $row['id']; ?>">

    <input type="submit" value="Utskriftsvennlig versjon"></form>

    Jeg ser den eneste forskjellen fra den jeg prøvde sist er at du har endret name="id", samme som Giba skrev i stad. Det var jeg som hadde endret den til "rapport" - vet ikke om det skulle gjøre noe utslag. Men dette fungerte heller ikke :(

  12. Er det forresten mulig å gjøre det samme med en knapp? Altså legge til den samme lenken på en knapp..

    <input type="submit" name="rapport" value="Utskriftsvennlig side" link="<a href="createpdf.php?id=<?php echo $row['id'];?>">

    Da kommer det riktignok en knapp, men linken fungerer ikke. Jeg har prøvd å søke endel på google etter dette uten noe særlig hell.

     

    <form method="get" action="createpdf.php">
      <input type="hidden" name="rapport" value="<?php echo $row['id']; ?>">
      <input type="submit" value="Utskriftsvennlig versjon"></form>

     

    Er vel en fungerende måte å gjøre det på.

    Fungerte ikke det heller, skjer ingenting annet enn at den ser ut til å oppdatere siden når jeg trykker på den.

  13. Er ikke værre enn at du linker du til createpdf.php?id=x fra details.php, altså med get-paramteret.

    Genialt, det fungerte! :)

    <a href="createpdf.php?id=<?php echo $row['id'];?>">Utskriftvennlig versjon</a>.

     

    Er det forresten mulig å gjøre det samme med en knapp? Altså legge til den samme lenken på en knapp..

    <input type="submit" name="rapport" value="Utskriftsvennlig side" link="<a href="createpdf.php?id=<?php echo $row['id'];?>">

    Da kommer det riktignok en knapp, men linken fungerer ikke. Jeg har prøvd å søke endel på google etter dette uten noe særlig hell.

     

     

    Har også et annet problem, det er at noen av MySQL tabellene inneholder mye data, og det ser ikke ut til at pdf_show_xy($pdf, $row['tabell5'], 50, 300); klarer å ta med linjebrudd. Jeg har prøvd meg litt frem med /n og nl2br uten noe særlig hell :(

  14. Dette er ekstremt pinlig, men som dere begge er inne på så ligger scriptet i en annen fil - det ligger altså ikke i details.php.

    Jeg har selve scriptet i en fil som heter "createpdf.php", så har jeg lagt en link i "details.php" som peker til "createpdf.php" - så $_GET kommandoen ser i linken ...\database\createpdf.php istedenfor ...\database\details.php?id=n :blush:

     

    Så jeg vet ikke hvordan dette kan løses, prøvde å lage en knapp som hentet scriptet fra createpdf.php, men fikk det ikke til - vet ikke om det er mulig engang. For det er vel den eneste måten å gjøre det på?

  15. Et spørsmål til :blush:

     

    Jeg har plassert en link på siden, som peker til php scriptet jeg har laget som genererer PDF dokumentet - tingen er at når jeg trykker på denne så genererer den alt innholdet i hele databasen.

     

    Så jeg prøvde følgende:

    $result = mysql_query("SELECT * FROM database WHERE id=1");

    Ved å gjøre dette så tar den kun med innholdet i posten med id 1, så det jeg prøver å få til er at den skal finne ut hvilken id jeg er på, slik at jeg f.eks. da kan skrive f.eks. $current_id istedenfor "1".

     

    Jeg forsøkte å legge til dette:

    $current_id=$_GET['id'];

    $result = mysql_query("SELECT * FROM database WHERE id=$current_id");

    Men da ser det ikke ut til at den klarer å hente noe data idetheletatt. PDF dokumentet skriver kun den statiske teksten, men ingenting av dataene i MySQL basen.

  16. ok

    Drit i echo $pdf; da

    Uten da?

    Det fungerte ikke heller :(

     

     

    readfile() skal fungerer, mulig IE7 bare trenger et par ekstra headers. Bruker selv følgende headers i et attachment-system jeg har. Kan samtidig være lurt å sette filesize, slik at du få en progressbar i nettleseren du laster ned med.

     

    header ( 'Content-Description: File Transfer' );
    header ( 'Content-Type: application/octet-stream' );
    header ( 'Content-Transfer-Encoding: binary' );
    header ( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
    header ( 'Content-Disposition: attachment; filename="' . $filename . '";' );
    header ( 'Content-Length: ' . filesize ( $filepath ) );

    Dette derimot, løste problemet! :D Tusen takk!
  17. kan være fordi at fila heter .php

    microsoft liker jo filendelser

     

    kan fikse et lite .htaccess script

     

    EDIT:

    <FilesMatch "c:\dokument.pdf$">
    SetHandler application/x-httpd-php
    </FilesMatch>

     

    og prøv å sett

    echo $pdf;

    før

    pdf_delete($pdf);

     

    !!WARNING!!

    Har ikke testa dette

    Puh, da har jeg fått laget en .htaccess og lagt den under '.$_SERVER['DOCUMENT_ROOT']; (c:\wamp\www), jeg har skrevet inn scriptet du ga meg. Men er jeg nødt til å definere at den skal hente .htaccess filen på slutten av php scriptet? Det skjer iallefall ingenting annet enn at den sier Resource id #5 nå. Det er "echo $pdf;" som gjør at denne meldingen kommer.

×
×
  • Opprett ny...