Jeg ville godt have js variablen file ind i php file_exits(), men kan ikke rigtigt få det til at virke. Kan det overhovedet lade sig gør, og hvis ja, hvordan så?
Nej, PHP køres, før Javascripten dannes. Derfor kan du ikke modtage JavaScript-variabler. Men du finder jo alligevel ud af, om filen findes, med PHP, så hvorfor ikke bare tage den derfra?
Problemet er at det sker i et andet vindue (generate.php), der automatisk lukkes (det kan selvfølgelig fjernes), men brugerne vil også gerne have en dialogboks, der fortæller dem, at filen findes, og de så kan tage stilling til situationen.
Hvis jeg bare kunne få fat i document.ds.sprog.value, der er en drop-down, hvor brugerne vælger sprog i, det bruges nemlig i navngivningen af filerne. Hvis jeg kunne få det over i php, så kunne jeg nok tjekke først, og så lige lave en javascript funktion a la sand/falsk, hvor brugerne så får dialogboksen.
Nej, generate.php er en ren php side, indeholder små 500 linies kode, i et kørende system, så den vil jeg ikke ændre drastisk på. Eneste der ikke er php, er js der lige lukker vinduet igen.
Jo, vinduet jeg arbejder i er en pop, der viser forskellige info omkring en ordre. Denne popup side inder flere sider, der kan navigeres i via en menu-side. På en af siderne er det muligt at "udskrive" en ordrebekræftelse på forskellige sprog. Sprogvalg foretages i en drop down (select), og ved siden af er der en knap, til "udskrivning" af bekræftelsen.
Men udskrivning mener jeg oprettelse af dokumentet på serveren.
Som det er nu kalder knappen endnu en popup (generate.php) der trækker en mængde data ud fra DB omhandlende ordren og laver en rft-fil med oplysningerne, findes filen allerede overskrives den bare. Herefter lukkes denne side automatisk, så brugeren er tilbage ved udgangspunktet.
------- ønskes -------
Det som vi godt vil have, er at brugeren får en dialogboks (a la confirm), hvor brugere får fortalt at filen findes, og om vedkommende vil overskrive den. Trykkes der JA, skal filen selvfølgelig overskrives, trykkes der NEJ, skal generate.php selvfølgelig ikke køres.
Jo, men det er jo php, altså server-side, den kan jeg først tjekke på når der er sker noget fra brugerens side, og det eneste brugen åbner en anden php-side.
Jeg kan selvfølgelig tjekke filen i den, men er ikke så glad for en løsning, hvor jeg skal åbne et vindue mere bare for at kunne tjekke om en fil findes eller ej. Det ville jo betyde, at der fra brugerens synspunkt, kommer et tomt vindue, der bare pludselig forsvinder igen. Det ville de helt sikkert undre sig over, og det ville ikke være den mest elegante løsning.
Jeg overvejer faktisk også at bruge AJAX, men ikke i denne version. Vi planlægger så småt at konvetere systemet. Den skjulte IFrame, tror jeg vil kigger lidt nærmere på.
Du kan loade din PHP-fil inde i IFramet og sætte den til f.eks. at generere et tekstfelt med id'et "output", hvori du skriver om filen fandtes eller ej.
//Til tjek af filtypen, ordre, tilbud el. blanket $diverse = $_GET['diverse'];
$sql = "SELECT ".$_GET['type'].", rev FROM ".$_GET['type']." WHERE id = '".$_GET['id']."'"; $res = mysql_query($sql) or die($sql); list($nr, $rev) = mysql_fetch_row($res);
function findValue($felt, $tekst) { foreach ($felt as $val) { if ( strtolower($val['dansk']) == strtolower($tekst) ) {//For at sikre det er lige meget om brugeren skriver betegnelserne med stort et sted og lille et andet sted return $val[$_GET['sprog']]; } }
// Felt rCVR // Henter kundens cvrnr og betalingsbetingelser $sql = mysql_query("SELECT betal, cvr FROM kunde WHERE id = '".$res['kunde_hidden']."'") or die(mysql_error); if (mysql_num_rows($sql) == 1) list($res['r528'], $res['rCVR']) = mysql_fetch_row($sql); else { $res['r528'] = ''; $res['rCVR'] = ''; }
// Felt r1email // Hent projektlederens emailadresse og direkte telefon $sql = mysql_query("SELECT email, companyphone FROM stamdata WHERE employee = '".$res['r1']."'") or die(mysql_error); if (mysql_num_rows($sql) == 1) list($res['r1email'], $res['r1tlf']) = mysql_fetch_row($sql);
Jo helst, jeg sidder godt nok og er ved at prøve at tilpasse generate.php filen, så den indeholder knapper, der så kalde sig selv, så må jeg godt nok lave den samme mængde kode 2 gange i filen, men det må jeg så rette på op senere.
Men jeg har side1, hvor jeg har alle oplysninger som jeg reelt skal undtaget sprogvalget. Det kan jeg først fange når brugeren har trykket på en knap, der kalder genereringssiden.
Det optimale løsning var at jeg på side1 kunne teste på filen findes.
Sådan, nu tror jeg, at jeg har en løsning på vej, a la det du også har været tidligere.
Jeg har lavet en ny side, der ikke gør andet end tjekke om filen findes eller ej, og eventuelt skrive dette ud i vinduet tilhørende den nye side. Denne side kalder jeg så i stedet for at kalde direkte til generate.php. Alt efter resultatet af tjek og brugerens valg, kalder den nye side, så generate.
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.