[PHP/JS]Variabelen doorgeven

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig om een popup te maken waar ik in een kalender een datum kan selecteren en die datum wordt vervolgens in mn form gezet. De popup met de kalender lukt al wel (nog klein foutje in kalender), maar dat is niet het probleem

Ik wil vanaf mijn php een functie in javascript aanroepen (dat lukt op zich wel) en vanuit php een variabele mee sturen. Maar zodra ik de variabele mee stuur krijg ik de error dat die niet gedefinieerd zou zijn...
Zoekfunctie e.d. leverd niets nuttigs op tot nu toe dus daarom probeer ik het hier.

De code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<script language="JavaScript">
function geklikt($klikDatum)
{
    window.opener.test($klikDatum);
    window.close();
}
</script>
<?
define ('ADAY', (60*60*24));
$maanden = Array('Januari',
                'Februari',
                'Maart',
                'April',
                'Mei',
                'Juni',
                'Juli',
                'Augustus',
                'September',
                'Oktober',
                'November',
                'December');
$dagen = Array('Zo',
              'Ma',
              'Di',
              'Wo',
              'Do',
              'Vr',
              'Za');
$enter = CHR(13);// . CHR(10);


if($_POST["submit"] == "Go!")
{
    $maand = $_POST['maand'];
    $jaar = $_POST['jaar'];
    $datearray = getdate(mktime(0,0,0,$maand,1,$jaar));
}
else
{
    $datearray = getdate();
    $maand = $datearray['month'];
    $jaar = $datearray['year'];
}

$start= mktime(0,0,0,$maand,1,$jaar);
$firstdagarray = getdate($start);

echo '<style type="text/css">
.selecteddate { border-style: dotted; background-color: yellow; }
.overdate { border-style: dotted; background-color: blue;  }
.nooverdate { border-style: none }
</style>

<form method="post">
<table border="1" cellpadding="1" bordercolor="000000" cellspacing="0" align="center" width="200" height="100">
<tr>
    <td colspan="7" bordercolor="ffffff">
       <div align="left"><font color="#000066"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><select name="maand">';
       for ($x = 1; $x < 13; $x++) {
           if ($maand == $x) {
               echo '<option selected value="' . $x . '">' . $maanden[$x -1] . '</option>';
           }else{
               echo '<option value="' . $x . '">' . $maanden[$x -1] . '</option>';
           }
       }
       echo '</select> &nbsp; <select name="jaar">';
       for ($x = 2005; $x < 2020; $x++) {
           if ($x == $jaar) {
               echo '<option selected value="' . $x . '">' . $x . '</option>';
           }else{
               echo '<option value="' . $x . '">' . $x . '</option>';
           }
       }
       echo '</select> &nbsp; <input type="submit" name="submit" value="Go!"></font></b></font></div>
    </td>
</tr>
</form>' . $enter;

foreach($dagen as $dag) {
    echo '<td bordercolor="ffffff" border="0">' . $enter . '    <div align="center"><font color="#000066"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">' . $dag . '</font></b></font></div>' . $enter . '</td>' . $enter;
}

for ($count=0 ; $count <(6*7); $count++) {
    $dagarray = getdate($start);

    if ($count % 7 == 0) {
        if($dagarray['mon'] != $datearray['mon']) {
            break;
        }
        echo '</tr>' . $enter . '<tr>' . $enter;
    }

    if($count < $firstdagarray['wday'] || $dagarray['mon'] != $maand) {
        echo '<td bordercolor="ffffff"><br></td>' . $enter;
    }else
    {
        $temp = $dagarray['mday'];
            echo '    <td width="30" height="30" class="nooverdate" nowrap  onClick="this.className=\'selecteddate\';geklikt($temp);" onmouseover="this.className=\'overdate\'" onmouseout="this.className=\'nooverdate\'"><div align="center">' . $dagarray['mday'] . '</div></td>' . $enter;
            $start += ADAY;
    }
}
echo '</tr></table>' . $enter;

?>

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op donderdag 19 mei 2005 @ 16:01:
Ik wil vanaf mijn php een functie in javascript aanroepen (dat lukt op zich wel)
Dat lijkt me sterk. Je kunt hoogstens wat javascript-code met php uitpoepen. Maar rechtstreeks een variabele aanroepen lukt niet hoor.
en vanuit php een variabele mee sturen. Maar zodra ik de variabele mee stuur krijg ik de error dat die niet gedefinieerd zou zijn...
hoe bedoel je vanuit php een variabele meesturen?
en wat zegt de error message precies? op welke regel krijg je een fout, etc.

Het lijkt me gewoon een kwestie van debuggen ....

// edit
$klikdatum wordt trouwens nergens gezet. weet je zeker dat dit niet gewoon een register_global probleem is?

[ Voor 9% gewijzigd door marty op 19-05-2005 16:15 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Functie geklikt (regel 2) die wordt vanuit regel 98 aangeroepen. Als ik dat doe zonder dat ik variabele temp mee stuur lukt dat prima, maar zodra ik temp mee stuur krijg ik als error dat die niet gedefinieerd is...

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Ah, je krijgt een foutmelding in je javascript?
Dan was het ten eerste wel handig als je dat er bij had gezegd en ten tweede zit je hier dan in het verkeerde forum.
in javascript zet je geen $ voor variabelen

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Laat maar het het al...

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

En wat was nou het probleem? Als je dat erbij zegt dan heeft misschien een ander er nog wat aan via de search. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Je mag het niet als variabele weg sturen, maar als je het als ' . $temp . ' weg stuurd kan het stiekum toch :D

code:
1
2
3
4
5
$temp1 = $jaar;
        $temp2 = $maand;
        $temp3 = $dagarray['mday'];
        $temp= "$temp1+'-'+$temp2+'-'+$temp3";
            echo '    <td width="30" height="30" class="nooverdate" nowrap  onClick="this.className=\'selecteddate\';geklikt(' . $temp . ');" onmouseover="this.className=\'overdate\'" onmouseout="this.className=\'nooverdate\'"><div align="center">' . $dagarray['mday'] . '</div></td>' . $enter;

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21-09 12:54
Verwijderd schreef op vrijdag 20 mei 2005 @ 08:49:
Je mag het niet als variabele weg sturen, maar als je het als ' . $temp . ' weg stuurd kan het stiekum toch :D
:? Het enige wat je nu doet is twee stukken string aan elkaar vast plakken (concatenation).

Volgens mij haal jij twee dingen door elkaar, namelijk client-side en server-side. PHP is een server-side scripting taal (draaid op de webserver), terwijl JavaScript een client-side taal is (draaid in de browser). Zodra je een request verstuurd naar de server, om bijvoorbeeld een PHP pagina te laten zien. Voert PHP het uit en stop daarna, het resultaat wordt verstuurd naar de browser.
"Ik wil vanaf mijn php een functie in javascript aanroepen (dat lukt op zich wel) "
Als eenmaal weet hoe de vork in de steel zit, kom je erachter dat deze bovenstaande kwoot helemaal niet klopt.

Wat jij nu uiteindelijk doet is een stuk JavaScript genereren, welke weer client-side wordt uitgevoerd.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heb nu alleen nog de volgende error als ik de popup laat komen, als ik op de knop druk is het weg:
Notice: Undefined index: submit in c:\program files\easyphp1-8\www\kalender.php on line 32
@Sybr_E-N: Ik ben ook nog super n00b met php en js... Maar volgens mij zat het probleem hem in dat je niet zo maar een variabele van php naar javascript kan sturen, en nu stuur je het als string en dat kan wel...

[ Voor 8% gewijzigd door Verwijderd op 20-05-2005 09:07 ]


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op vrijdag 20 mei 2005 @ 09:06:
Heb nu alleen nog de volgende error als ik de popup laat komen, als ik op de knop druk is het weg:
Je zegt op die regel
code:
1
if ($_POST['submit'])
waarbij je er dus van uit gaat dat $_POST['submit'] bestaat. Als ie niet bestaat geeft PHP daar dus een foutmelding op, want je checkt de waarheidswaarde van een variabele die helemaal niet bestaat. En $_POST['submit'] bestaat pas als jij 'op de knop drukt' - dan wordt er namelijk iets gepost. Vandaar dat je dan die foutmelding niet krijgt.

Wat je moet doen is
code:
1
if (isset($_POST['submit']))

Daarmee check je of een variabele gezet is

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heej thanx dat werkt idd prima!
Pagina: 1