Avatar billede foxladi Nybegynder
28. januar 2004 - 14:44 Der er 12 kommentarer og
1 løsning

Kan ikke hente fra formular

Jeg er i gang med at lave en blog, hvor man kun skal kunne skrive i et bestemt stykke tid. Det med tiden går helt fint, men jeg kan ikke få den til at hente data fra formularen, når tiden er gået.

Først delte jeg det i to filer: index.php og tid.php.

Index.php indeholder kun formularen med to felter (overskrift og blog) samt en knap (start).

Når der er klikket på Start, tæller tid.php ned. Efter at tiden er gået, kan jeg godt få den til at skrive starttid og sluttid, og at tiden er gået, men jeg kan ikke få den til at hente fra formularen og herefter gemme i en database.

Jeg har bl.a. følgende kode i tid.php:



while ($tid < $slut){
    getdate();
    $tid = date('Y-m-d H:i:s');
    $overskrift = $_REQUEST["overskrift"];
    $blog = $_REQUEST["blog"];
}

Jeg har også prøvet at gøre $overskrift og $blog globale, men det hjælper heller ikke. Den gemmer kun den oprindelige $overskrift (der er tom) og $blog (også tom).

Men måske skal det gribes helt anderledes an?

Er der nogen her, der har idéer?

Jeg har også prøvet et JavaScript til at tage tid i stedet for PHP, men der virkede JavaScriptet ikke.

--
Med venlig hilsen
Britt
Avatar billede erikjacobsen Ekspert
28. januar 2004 - 14:47 #1
Du kan ikke gøre det i PHP. Du skal bruge JavaScript.
Avatar billede foxladi Nybegynder
28. januar 2004 - 14:51 #2
Æv! Og det kan jeg ikke få til at virke.
Avatar billede erikjacobsen Ekspert
28. januar 2004 - 14:53 #3
Men det kan vi måske hjælpe med ;)
Avatar billede ldanielsen Nybegynder
28. januar 2004 - 14:56 #4
Prøv dette:

Når tiden er udløbet:

echo "<script>parent.frameName.document.forms[0].submit()</script>";

frameName må du selv udfylde.
Avatar billede foxladi Nybegynder
28. januar 2004 - 16:07 #5
Til Erik: Ja, det ville da ikke være dårligt. Jeg har prøvet følgende:

<html>
<head>
<script type="text/javascript">
<!--
function first() {
    alert('Et minut tilbage');
    setTimeout('second()',(1000*60*1));
}

function second() {
    document.blogform.submit();
}
//-->
</script>
</HEAD>

<BODY onLoad="setTimeout('first()',(1000*60*1)">

<form name="blogform" method="post" action="test2.php">
Overskrift: <input name="overskrift" size="50" ><br>
Blogtekst: <TEXTAREA name="blog" rows=10 cols=50></TEXTAREA>
<input type="submit">
</form>

</BODY>
</HTML>

I mit PHP-script virkede tidstagningen - her virker den ikke. Til gengæld ser det ud til at virke fint med at få det over i MySQL, når jeg klikker på knappen, men hele fidusen er jo, at jeg IKKE skulle behøve at klikke på knappen.
Avatar billede foxladi Nybegynder
28. januar 2004 - 16:08 #6
Til ldanielsen

Jeg har ikke brugt rammer - er det så bare navnet på formularen, der skal indsættes? Skal parent fjernes? (Jeg ved ikke en dyt, kan du nok se.)
Avatar billede ldanielsen Nybegynder
28. januar 2004 - 16:18 #7
Prøv dette:
Ja, så bliver det:

echo "<script>document.blogform.submit()</script>";

men det du har kan virke hvis du skriver:
t = setTimeout('second()',(1000*60*1));
Avatar billede foxladi Nybegynder
28. januar 2004 - 16:37 #8
Jeg har prøvet at anbringe din echo-sætning i "if ($tid >= $slut) {", men det virkede ikke. Jeg har også prøvet at anbringe den inden "if ($tid >= $slut) {" - virkede heller ikke.

Jeg har ændret setTimeout osv. til t = setTimeout osv., men desværre virkede det heller ikke. Jeg har prøvet både med Opera (min standardbrowser) og MSIE.

Æv! Tak for dine anstrengelser dog :-)
Avatar billede erikjacobsen Ekspert
28. januar 2004 - 18:43 #9
Du skal formentlig bare ændre til

<BODY onLoad="setTimeout('first()',(1000*60*1))">
Avatar billede foxladi Nybegynder
28. januar 2004 - 19:51 #10
Hej Erik

Ja, det er korrekt. Jeg manglede en slutparantes. Hvorfor ændrer du det ikke til et svar, så du kan få point?
Avatar billede erikjacobsen Ekspert
28. januar 2004 - 20:02 #11
Fordi jeg slet ikke samler på point.
Avatar billede foxladi Nybegynder
28. januar 2004 - 20:04 #12
Flot holdning :-) (Jeg forstår dig!) Tak for hjælpen!
Avatar billede foxladi Nybegynder
23. juli 2004 - 16:41 #13
Lukker spørgsmålet
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