PHP variable doorsturen naar Javascript

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yves Robeyst

Yves Robeyst

06/08/2024 07:38:44
Quote Anchor link
Hallo,
ik heb een webpagina met een lijst van allerlei data en uren om afspraken te boeken.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$Recordset1
= new WA_MySQLi_RS("Recordset1",$Woma,0);
$Recordset1->setQuery("SELECT id, datum, uur FROM afspraken ORDER BY id ASC");
$Recordset1->execute();
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$wa_startindex
= 0;
while(!$Recordset1->atEnd()) {
  $wa_startindex = $Recordset1->Index;
?>

           <tr style="text-align: left">
             <td width="141" class="tabelhoofding" type="hidden"><?php echo($Recordset1->getColumnVal("id")); ?></td>
             <td width="190" class="tabelhoofding"><?php echo($Recordset1->getColumnVal("datum")); ?></td>
             <td width="128" class="tabelhoofding"><?php echo($Recordset1->getColumnVal("uur")); ?></td>
                <td><input name="button" type="button" class="knop" id="button" title="Afspraak maken" onclick="afspraak()" value="Afspraak maken"></td>
             </tr>
           <?php
  $Recordset1
->moveNext();
}

$Recordset1->moveFirst(); //return RS to first record
unset($wa_startindex);
unset($wa_repeatcount);
?>


Op die manier heb ik dus een lijst met allerlei data en uren. Nu wens ik bij het klikken op de knop "Afspraak maken" de waarde van het veld "id" te gebruiken om een nieuwe pagina voor die gekozen datum en uur te openen.
Hoe zend ik de waarde van het veld "id " naar een variabale waarmee ik de volgende pagina kan openen?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
function afspraak()
{
// invullen PHP variable doorgeven aan variable "xid"    
    
window.open("http://www.mijnpagina.be/afspraak_boeken.php?xid="+xid, '_self', false);    
}    
 
PHP hulp

PHP hulp

07/12/2024 07:00:33
 
- Ariën  -
Beheerder

- Ariën -

06/08/2024 10:27:52
Quote Anchor link
Kijk eens naar fetch of AJAX in Javascript.
 
Ivo P

Ivo P

08/08/2024 21:40:41
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<td><input name="button" type="button" class="knop" id="button" title="Afspraak maken" onclick="afspraak(<?php echo($Recordset1->getColumnVal("uur")); ?>)" value="Afspraak maken"></td>
        


en dan wordt je javascript functie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
function afspraak(xid)
{

    
window.open("http://www.mijnpagina.be/afspraak_boeken.php?xid="+xid, '_self', false);    
}  



Toevoeging op 08/08/2024 21:43:22:

maar als je dan 3000 regels in je lijst hebt, dan geef je javascript ook 3000 buttons om een listener op te leggen en in de gaten te houden.

mooier zou het zijn om 1 listener te maken die een klik op het document in de gaten houdt en dan uitzoekt of dat een button van een bepaalde class is. Vervolgens zoek je daar dan het id bij.

Maar dat is stap 2. Kijk eerst maar of je het zo aan de gang krijgt.
 
Yves Robeyst

Yves Robeyst

09/08/2024 09:11:53
Quote Anchor link
Bedankt voor de tips.
Ik heb ondertussen een andere workaround gevonden. Want bovenstaande tips boden niet de oplossing.
 
- Ariën  -
Beheerder

- Ariën -

09/08/2024 09:48:18
Quote Anchor link
Welke oplossing heb je gevonden?
 
Yves Robeyst

Yves Robeyst

09/08/2024 09:52:16
Quote Anchor link
Ik laat de gebruiker zelf het nummer van de afspraak invullen en op [Afspraak maken] klikken aangezien ik vanuit de lijst het nummer van de afspraak niet doorgestuurd krijg naar de volgende pagina. Dus geen knop [Afspraak maken] per datum maar één knop bovenaan [Afspraak maken] met daarnaast het nummer van de afspraak ingevuld door de gebruiker. Misschien niet de mooiste oplossing maar toch goed werkbaar.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.