Avatar billede steen-h Mester
19. maj 2005 - 16:04 Der er 12 kommentarer og
1 løsning

javascript variabel til php

Jeg har fundet en data picker
http://hotarea.com/fast/display.exe?show+javascript&date_and_time&datePickerForm.html

Den vil jeg gerne bruge og trække valg dato ud fra.

Her er kaldet til dato valget, den returnere også valgt dato og udskriver den i input feltet.


<form name=formPicker>
<table cellpadding=2 cellspacing=0 border=0>
    <tr>    <?
                  ?>


    </td>
        <td><input name=startDate type=text value="" maxlength=10 size=10 onFocus=this.blur()></td>
        <td><a href="java script:void( window.open( 'calendar.html?startDate', '', 'width=200,height=210,top=120,left=120' ))"><img
            src='calendar.gif' border=0></a></td>
    </tr>
    <tr>
        <td><input name=endDate type=text value="" maxlength=10 size=10 onFocus=this.blur()></td>
<td><a href="java script:void( window.open( 'calendar.html?endDate', '', 'width=200,height=210,top=120,left=120' ))"><img
            src='calendar.gif' border=0></a></td>
    </tr>

</table>
</form>


Jeg har set man kan lave det med at overføre til url, eller med et billede.

Det med url overførsel skal siges at jeg skal bruge kaldet fra flere sider, og der er en variabel i forevejen.

Jeg vil gerne have komplet kode hvor det ender i en php variabel som hedder $valgtdato

Er der en som kan hjælpe med det.
Avatar billede roenving Novice
19. maj 2005 - 16:16 #1
Det er vel bare i dit php-script at sætte datoen lig med get-variablen:

$valgtdato = $_GET["startDate"]; ?-)
Avatar billede steen-h Mester
19. maj 2005 - 16:25 #2
Jeg har efter formen tilføjet følgende,
men den skriver ikke noget.

<?php
$valgtdato = $_GET['startDate'];
echo $valgtdato;
?>
Avatar billede steen-h Mester
20. maj 2005 - 16:00 #3
Jeg har åbenbart forlangt for meget eller budt for lidt, har hævet til 200 point.

med følgende kan jeg lægge en variabel ud på url, ikke så brugbart i dette tilfælde

<a href="?p=form.php&dato=<?PHP echo '12' ?>">Test</a>

og følgende kan læse om der er en,og så udskrive den.
<?php
  if($_GET['dato']) {
    $id = $_GET['dato'];
    echo 'url '.$id;
    }
?>

Som jeg har læst i diverse indlæg skal javascript lægge variablen ud og bagefter skal siden reloades for at hente variablen igen.
Hvordan gør jeg det.
Avatar billede knudx Nybegynder
21. maj 2005 - 01:45 #4
Du får ikke data fra din form til php medmindre du sender fra formen sådan:

* Du har et FORM element, dér tilføjer du fx method="POST" action="<?php echo $_SERVER[PHP_SELF] ?>"
* Send formen enten ved at tilføje en send knap sådan <input type="submit" value="Send">, eller du kan gøre det vha javascript med document.forms['formPicker'].submit();
Avatar billede knudx Nybegynder
21. maj 2005 - 01:50 #5
men for p* det er svært at forstå hvad du mener, du skriver data picker i stedet for dato picker, og så videre hele vejen igennem

BTW glemte jeg ' tegn: <?php echo $_SERVER['PHP_SELF'] ?>

-og så forresten: ret
<a href="java script:void( window.open( 'calendar.html?startDate', '', 'width=200,height=210,top=120,left=120' ))"> til
<a href="#" onclick="window.open( 'calendar.html?startDate', '', 'width=200,height=210,top=120,left=120' );return false">
- det virker fjollet at se javascript i statusbar'en ikke !?!
Avatar billede steen-h Mester
21. maj 2005 - 15:40 #6
Nu har jeg gjordt næsten som du skriver knudx

<form name="formPicker" method="POST" action="?p=trip.php&mode=<?PHP echo $_GET['mode']; ?>" >
<table  border=0>
  <tr>
    <td><input name="startDate" type=text value="" maxlength=10 size=10 onFocus=this.blur()>
    <a href="#" onclick="window.open( 'calendar.html?startDate', '', 'width=200,height=210,top=120,left=120' );return false"><img
            src='calendar.gif' border=0></a>
<input type="submit" value="Send"></td>
  </tr>
</table>
</form>

og jeg kan tage datoen ud med POST, det virker fint.

Jeg vil gerne bruge javascript i stedet for send knappen, men følgende
bliver ved i det uendelige.

<script language="javascript">
  document.forms['formPicker'].submit();
  </script>
Avatar billede roenving Novice
21. maj 2005 - 15:51 #7
-- ja, da den udføres, når siden loader, vil den jo gå igen og igen og igen og igen og igen ...
Avatar billede steen-h Mester
21. maj 2005 - 16:07 #8
kan man ikke lave det sådan at når jeg har valgt dato og calendar.html lukkes så submit'er javascriptet og kun den ene gang
Avatar billede knudx Nybegynder
22. maj 2005 - 13:43 #9
Så skal du ind i dit kalender script (calendar.html) og finde det sted hvor der står noget i retning af

opener[_fieldname_].value = ...
window.close();

og tilføje opener.forms[_formnavn_].submit();
inden linien med close();

Det er lidt tricky

Det er MEGET nemmere at bruge en knap! - Og hvis du har to datoer, som i dit første eksempel, er det måske også lidt hul i hovedet hvis javascriptet submit'er når kun den ene af dem er valgt?!?
Avatar billede steen-h Mester
22. maj 2005 - 18:05 #10
Knudx kan du rette følgende så den selv submiter, jeg kan ikke få det til at virke,og så lægge et svar så du kan få dine point.

Jeg har 2 linjer i samme funktion,  function createDaysTable()

<td align='center'><font face=Verdana size=1><a href='#' onclick='window.opener.document." + formName + "." + strField + ".value=\"" + strDate + "\"; self.close();'>" + selected + "" + dayCounter + "</a></b></td>\r\n";

<td align=center><span class=Numeric><a href=# onclick='window.opener.document." + formName + "." + strField + ".value=\"" + strDate + "\"; self.close();'>" + selected + "" + dayCounter + "</a></b></td>\r\n";
Avatar billede knudx Nybegynder
22. maj 2005 - 21:19 #11
Problemet med det er, at pop-up vinduet kalder en funktion [i dette tilf. submit()] i det 'store' vindue, som så lukker det lille vindue. Når funktionen så skal returnere, er det script som har udført kaldet, slettet fra hukommelsen, fordi vinduet er lukket. Dette kan resultere i de særeste fejlmeddelelser, f.eks. følgende "Der er afgivet en nul-pointer til stubben"...

Imidlertid er "window.open" asynkron, dvs den ikke venter på det som foregår i det nye vindue. Det burde altså være muligt at tilføje opener.submit, således:

onclick='window.opener.document." + formName + "." + strField + ".value=\"" + strDate + "\"; window.opener.document." + formName + ".submit(); self.close();'>

Der er så en anden mulighed for at sende værdier fra js til php, nemlig et objekt som hedder XMLHttpRequest. Det er en helt anden historie, men hvis du har mod på det, ka' du evt starte her http://www.webpasties.com/xmlHttpRequest/
Avatar billede steen-h Mester
22. maj 2005 - 22:03 #12
Jeg har fundet et andet skript.
http://www.rainforestnet.com/
som har en funktion  ved onchange
den får jeg til at kalde følgende
document.forms['formPicker'].submit();

kompineret med det du har lært mig så virker det perfekt.

Du skal have mange tak for hjælpen.
Avatar billede knudx Nybegynder
22. maj 2005 - 23:15 #13
coolish ;)
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