login  Naam:   Wachtwoord: 
Registreer je!
 Forum

javascript variabele gebruiken in php

Offline Annihil8 - 24/08/2007 18:09
Avatar van Annihil8Nieuw lid Hallo,

Ik heb een probleem met een javascript variabele die ik in een php scriptje moet gebruiken. De variabele komt in de jsfunctie via een parameter. Deze variabele dient dan als id opgezocht te worden in een mysql databank. Het opzoeken gebeurd in php.

Na al wat zoekwerk gedaan te hebben, ben ik er nog steeds niet uit. Men vertelt wel dat het dankzij het client/server side principe niet combineerbaar is en dat men het als bijgevolg anders moet oplossen. Wat die oplossing is, wist me niemand te vertellen  

Hopelijk kunnen jullie me helpen.

Mvg,

Annihil8



  1. function CheckUserId(var_userId)
  2. {
  3. ....
  4. <?php
  5. ....
  6. $result = mysql_query(//De variabele dient in deze sqlstring gebruikt te worden als where clausule WHERE UserId = var_userId//);
  7. ...
  8. ?>
  9. }

3 antwoorden

Gesponsorde links
Offline BramBo - 24/08/2007 18:16
Avatar van BramBo JS gevorderde Client side server side is wel vaker n vervelde kwestie. Dit komt omdat Server side eerst wordt uitgevoerd en alle client side wordt in de servide language gezien als een string.

Natuurlijk zijn er alternatieven, ajax zou jou bijvoorbeeld kunnen helpen. Kun je uitleggen wat je hebt en hoe je het graag wil zien?
Offline Annihil8 - 24/08/2007 19:55
Avatar van Annihil8 Nieuw lid mmm ok, ik zal mijn best doen maar ik vrees dat het de zaak alleen nog veel ingewikkelder zal maken  

Op mijn pagina staat eigenlijk een calendercontrol die ik op het internet gevonden heb. Deze calendercontrol wordt op volgende manier opgebouwd op de pagina


  1. <div style="float: left; margin-left: 1em; margin-bottom: 1em;"
  2. id="calendar-container"></div>
  3.  
  4. <script type="text/javascript">
  5. Calendar.setup(
  6. {
  7. flat : "calendar-container",
  8. flatCallback : dateChanged,
  9. dateStatusFunc : ourDateStatusFunc
  10. }
  11. );
  12. </script>


Die ourDateStatusFunc is een function die de calender zal aanroepen bij iedere wijziging van de maand/jaar. De function zal ofwel true of false terug sturen en dan respectievelijk de datum in het vet of niet in het vet zetten.

In deze functie roep ik allerlei andere functies aan en uiteindelijk wordt de bewuste CheckUserId(var_User_Id) aangeroepen. Als er voor de gekozen datum, de bewuste var_User_Id gevonden wordt in de databank zal deze function true terug sturen en deze wordt dan zo terug naar de calendarcontrol gestuurd.

Ik hoop dat het zo een beetje duidelijk is.

Alvast bedankt voor je reactie,

Annihil8
Offline BramBo - 28/08/2007 13:56 (laatste wijziging 28/08/2007 19:42)
Avatar van BramBo JS gevorderde je kunt voor 2 oplossingen kiezen; Een er van zou zijn een javascript array te maken met datums van de speciefieke user id en een andere is het gebruik van ajax(let wel dat dit asynchroon is en dus als een delay kan werken.

Ik zie het als volgt (correct me if im wrong ): Je hebt een gebruiker id van de ingelogde gebruiker (via sessie/cookie whatever; ik ga even verder op sessies). Met _SESSION['uID'] wil je via een query kijken of deze aanwezig is in de database op die specifieke datum (WHERE datum=datum AND uID=uID ?).

In je Callback (ourDateStatusFunc) dien je een functie aan te roepen die dus checked op de datum van het ingelogde persoon. Zelf zou ik gaan voor een object (of het moeten gigantische arrays worden; hoeveel datums zou er in een worst case per gebruiker in kunnen zitten? ); mocht je een ajax oplossing hebben hoor ik het wel:

php opbouw van je user date object: (er van uitgaande dat je date in de database is opgebouwd als YYYY-(M)M-(D)D) (waar maand van 0-11; 0=januari etc.)
  1. // Queries etc.
  2. $i = 0;
  3. while ($obj = mysel_fetch_array($query) ) {
  4. $jsArr .= "usrDateObj[{$i}] = '{$obj['DATUM_YYYY_MM_DD']}';\n\t";
  5. $i++;
  6. }


boven Calendar.setup dien je het userdateobj in js te implementeren dus:
  1. var usrDateObj = new Array();
  2. {$jsArr}

(wellicht dien je dit binnen je session object te definieren dat ligt eraan hoe deze is opgebouwd; maar in de meest logische opbouw zou dit moeten werken)

aanpassingen en functie:
  1. Calendar.ourDateStatusFunc = function() {
  2. /*.................
  3. ...............
  4. .......*/
  5. // Roep de check aan
  6. if(usrDateObj.inArray(DATUM_IN_JS_FORMAAT)) alert('Aanwezig');
  7. else alert('Neen..');
  8. }


Anywhere in je code (wel buiten je calendar object!)
  1. Array.prototype.inArray = function(val) {
  2. for (var i in this) { if (this[i] === val) return i; }
  3. return -1;
  4. }


(alles over date in js: http://www.w3schools.com/jsref/jsref_obj_date.asp
hoe te converteren in php: http://nl3.php.net/date )

succes 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.221s