Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[javascript + php] php var

Pagina: 1
Acties:

  • yetti4
  • Registratie: Juni 2007
  • Laatst online: 23-03-2018
Ik weet niet of het mogelijk is maar hoe kan je een een javascript variabel aan php var toekennen?
Ik zal ff een klein voorbeeld geven van wat ik bedoel:

code:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<script type="text/javascript">
var a = 'p';
</script>
</head>
<body>
<?
$test = // hier moet dat var a komen 
?> 
</body>
</html>

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 27-11 09:24
PHP is server-side. Javascript is client-side.

De bezoeker roept een pagina aan.
De webserver stopt die pagina in de PHP parser welke de PHP code uitvoert
Het resultaat daarvan stuurt de webbrowser naar de bezoeker.
Wat jij wilt is indirect onmogelijk. Je zult de javascript variabele terug moeten sturen naar de webserver, zodat die hem op zijn beurt aan de PHP parser kan doorgeven.

Dit kun je doen door de variabele in de querystring in de url te plaatsen, of door hem met behulp van een formulier te POST-en.

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 09:00

Sebazzz

3dp

Of AJAX. Das nog wel de mooiste manier. Je maakt echter wel de pagina afhankelijk van Javascript, en dat zou je niet moeten doen.

[ Voor 93% gewijzigd door Sebazzz op 28-11-2007 19:49 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


  • yetti4
  • Registratie: Juni 2007
  • Laatst online: 23-03-2018
Sebazzz schreef op woensdag 28 november 2007 @ 19:48:
Of AJAX. Das nog wel de mooiste manier. Je maakt echter wel de pagina afhankelijk van Javascript, en dat zou je niet moeten doen.
Daar dacht ik inderdaag ook aan, maar het maakt je pagina gelijk wel stukker slomer

  • brute51
  • Registratie: Augustus 2001
  • Laatst online: 07-08 23:35
Ja dat kan. De makkelijkste manier is via een GET. Voeg aan het eind van de url naar het php bestand iets toe als ?a=1&b=2&c=3. Vervolgens kun je die waardes uitlezen in je PHP script met $_GET['a'] (of vervang a door een andere variabel naam die je hebt gebruikt in de url, in mijn voorbeeld kan dat dus ook zijn b en c);

Ik heb echt een hele goeie PC.


  • yetti4
  • Registratie: Juni 2007
  • Laatst online: 23-03-2018
brute51 schreef op woensdag 28 november 2007 @ 19:52:
Ja dat kan. De makkelijkste manier is via een GET. Voeg aan het eind van de url naar het php bestand iets to als ?a=1&b=2&c=3. Vervolgens kun je die waardes uitlezen in je PHP script met $_GET['a'] (of vervang a door een andere variabel naam die je hebt gebruikt in de url, in mijn voorbeeld heb je dus ook nog b en c);
Dat is inderdaad een idee, maar gaan al je <inputs> op de pagina niet verloren?

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 09:56

Gonadan

Admin Beeld & Geluid, Harde Waren
Sebazzz schreef op woensdag 28 november 2007 @ 19:48:
Of AJAX. Das nog wel de mooiste manier. Je maakt echter wel de pagina afhankelijk van Javascript, en dat zou je niet moeten doen.
yetti4 schreef op woensdag 28 november 2007 @ 19:50:
Daar dacht ik inderdaag ook aan, maar het maakt je pagina gelijk wel stukker slomer
Dat is onderhand wel achterhaald. Vroeger kon je nog zeggen dat Javascriptgebruik onbetrouwbaar en vertragend was.
Tegenwoordig is het zo algemeen geaccepteerd dat je, mits netjes gescript, goede en snelle pagina's kan maken door slim gebruik van AJAX.
Kijk dan ook eens naar JSON, erg handig.
Zorg alleen wel dat je dan de veiligheid van je scripts in de gaten houdt, het gebruik van AJAX zorgt meestal ook voor een grotere hoeveelheid kwetsbaarheden.

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • Johnny
  • Registratie: December 2001
  • Laatst online: 28-11 13:11

Johnny

ondergewaardeerde internetguru

yetti4 schreef op woensdag 28 november 2007 @ 19:54:
[...]

Dat is inderdaad een idee, maar gaan al je <inputs> op de pagina niet verloren?
Waarom denk je dat?

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Verwijderd

Gonadan schreef op woensdag 28 november 2007 @ 19:55:

Dat is onderhand wel achterhaald. Vroeger kon je nog zeggen dat Javascriptgebruik onbetrouwbaar en vertragend was.
Wat een onzin. Ik heb in de tijd van HTML 2.0 en 3.2 zat met Javascript gedaan. Wat er toen mee gedaan werd, was helemaal niet zo traag. Dat er tegenwoordig voor de meest simpele dingen zware scripts gebruikt worden is een heel ander verhaal.
Tegenwoordig is het zo algemeen geaccepteerd dat je, mits netjes gescript, goede en snelle pagina's kan maken door slim gebruik van AJAX.
Kijk dan ook eens naar JSON, erg handig.
Sja, verder kún je AJAX gebruiken voor applicatie-achtige toepassingen, en zou je dergelijke technieken niet moeten gebruiken voor webpagina-achtige toepassingen. Hetzelfde geldt voor frames die vroeger meer geaccepteerd waren dan nu. Hetzelfde geldt voor tabellen die vroeger voor meer dingen werden gebruikt dan nu.

Er zijn wel verbeteringen ontstaan uit voortschrijdend inzicht, maar ook minstens zoveel misvattingen.
Zorg alleen wel dat je dan de veiligheid van je scripts in de gaten houdt, het gebruik van AJAX zorgt meestal ook voor een grotere hoeveelheid kwetsbaarheden.
Deze kun je wel onder elke post zetten die over webdevelopment gaat. Zorg dat je weet wat je aan het doen bent, zorg dat je weet hoe iets misbruikt kan worden.

Maar het ging over javascript variabelen die naar een server-side PHP script moeten. Heel simpel, dat gaat via een HTTP request, en die kun je op meerdere manieren doen. Welke de beste is, is afhankelijk van de toepassing.

  • yetti4
  • Registratie: Juni 2007
  • Laatst online: 23-03-2018
http-request is toch ook gewoon ajax of niet?

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 09:56

Gonadan

Admin Beeld & Geluid, Harde Waren
Ik wilde alleen aangeven dat je Javascript niet zomaar moet afschrijven. :?
Maar het ging over javascript variabelen die naar een server-side PHP script moeten. Heel simpel, dat gaat via een HTTP request, en die kun je op meerdere manieren doen. Welke de beste is, is afhankelijk van de toepassing.
Zelf zou ik dan een hidden input maken waaraan je de waarde van 'var a' toekent.
Maar dat is puur omdat ik zelf een voorkeur van post boven get heb.

Wat wil je precies met de variabele gaan doen?
yetti4 schreef op woensdag 28 november 2007 @ 20:05:
http-request is toch ook gewoon ajax of niet?
HTTP-request is niets meer dan een request over HTTP.
Dit kan gebeuren door gewoon een webpagina aan te roepen in je browser. Maar dit kan ook met behulp van bijvoorbeeld Javascript op de achtergrond gebeuren zodat je geen nieuwe pagina hoeft te laden. Deze manier wordt dan AJA(X) genoemd.

[ Voor 26% gewijzigd door Gonadan op 28-11-2007 20:09 ]

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • yetti4
  • Registratie: Juni 2007
  • Laatst online: 23-03-2018
ik heb zeg maar rond 10 broodjes. In HTML moet hij voor elk soort broodje een tabel met keuzes maken. In Html heb ik dus maar 1 broodje gedaan waar alle id's variabel zijn. Hij werkt ze een voor een uit.
<head>
<?
veel php met algemene dingen prijzen van alle keuzes en zo( niet per soort broodje )
?>
<javascript>
die berekent al de tekst van broodjes en de prijzen hier heb dus de nummer van het broodje
alle getallen komen rechtsreeks uit de bovenste stukje php (alles variabel)
Hier heb ik dat var nodig:
var prijs_brood = <? echo($brood[!!var!!]) ?>
</javascript>
</head
<body>
<?
hier wordt al de html 1 voor 1 uitgewerkt. Hier heb ik dat var ook, maar...
?>


Zo werkt het ongeveer :P

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 09:56

Gonadan

Admin Beeld & Geluid, Harde Waren
Waar heb je dan het javascript voor nodig?
Kan je de tabellen niet gewoon door PHP laten printen? Of is het je bedoeling dat je een select krijgt waardoor de tabel met informatie steeds veranderd?

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • yetti4
  • Registratie: Juni 2007
  • Laatst online: 23-03-2018
Gonadan schreef op woensdag 28 november 2007 @ 20:21:
Waar heb je dan het javascript voor nodig?
Kan je de tabellen niet gewoon door PHP laten printen? Of is het je bedoeling dat je een select krijgt waardoor de tabel met informatie steeds veranderd?
Ja, de tabel verandert inderdaad, als je klikt op geen tomaat wordt de prijs lager en verandert de beschrijving van het broodje.

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 09:56

Gonadan

Admin Beeld & Geluid, Harde Waren
Dat kan dan inderdaad op meerder manieren.
• je zorgt dat bij elke wijziging van invoervelden de pagina gepost wordt en je de tabel opnieuw berekent
• je zorgt dat alle informatie al in javascripts array/objects uitgeprint is door php waardoor bij elke wijziging van invoervelden je de inhoud van de tabel veranderd
• je zorgt dat bij elke wijziging een AJAX request gedaan wordt naar een PHP pagina die de inhoud van de tabel voor je berekent

Er zijn vast nog meer mogelijkheden maar deze zijn in mijn ogen het meest voor de hand liggend. De keuze is aan jou.

Je kunt bijvoorbeeld zorgen dat de prijzen en teksten per ingredient in verschillende arrays zitten. Zodra er dan iets veranderd in het formulier kijk je voor elk ingredient of hij geselecteerd is en zo ja dan tel je de prijs bij het totaal op en plak je de tekst achter de bestaande tekst. (ik ga er nu even vanuit dat je prijs en tekst per ingredient wilt wijzigen).

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • yetti4
  • Registratie: Juni 2007
  • Laatst online: 23-03-2018
Het is inderdaad de bedoeling dat alle informatie in javascript staat, maar het is wel broodje verschillend.
Met prijzen doe ik gewoon zo:
prijzen = new Array(<? echo($prijzen) ?>
en daarvoor heb ik de array in php gemaakt uit de database.

Het probleem is dat array van soort brood is per soort broodje variabel

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Persoonlijk denk ik dat je het wat eigenaardig aanpakt. Ik zou dan ook gewoon alle prijzen en gegevens via PHP pompen in je javascript en nadien je javascript alles laten berekenen volgens whatever algoritme (wellicht hetzelfde als dat je nu? in PHP hebt).

  • ChessSpider
  • Registratie: Mei 2006
  • Laatst online: 28-11 13:51
moozzuzz schreef op donderdag 29 november 2007 @ 18:06:
Persoonlijk denk ik dat je het wat eigenaardig aanpakt. Ik zou dan ook gewoon alle prijzen en gegevens via PHP pompen in je javascript en nadien je javascript alles laten berekenen volgens whatever algoritme (wellicht hetzelfde als dat je nu? in PHP hebt).
Als je hiervoor kiest moet je het echter wel narekenen in PHP! Dat moet je sowieso trouwens, want álle form elementen zijn aanpasbaar via javascript.

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Inderdaad, maar het totaal-sommetje is enkel informatief, neen? Je hebt in PHP sowieso de details van het broodje nodig.
Pagina: 1