login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Bepaalde javascript handle uitvoeren

Offline Rmy - 03/02/2010 20:04
Avatar van RmyNieuw lid Beste,

Ik ben op dit moment bezig met een AJAX rating systeem. Nu wil ik dat zodra de stem succesvol is toegevoegd dat in mijn normale pagina het aantal stemmen 1 omhoog gaat en dat ik ook de breedte van een div opnieuw kan instellen. Ik heb al verschillende dingen geprobeerd maar ik kom er niet uit.

Voorgrond php:

  1. <span>
  2. <ul class="star_rating">
  3. <li class="current_rating" style="width: <?php echo $rounded_pixel; ?>px;"></li>
  4. <li><a onclick="rate(<?php echo $_GET['id']; ?>, 1); return false;" title="Onvoldoende!" class="one_star">1</a></li>
  5. <li><a onclick="rate(<?php echo $_GET['id']; ?>, 2); return false;" title="Matig!" class="two_stars">2</a></li>
  6. <li><a onclick="rate(<?php echo $_GET['id']; ?>, 3); return false;" title="Voldoende!" class="three_stars">3</a></li>
  7. <li><a onclick="rate(<?php echo $_GET['id']; ?>, 4); return false;" title="Ruim Voldoende!" class="four_stars">4</a></li>
  8. <li><a onclick="rate(<?php echo $_GET['id']; ?>, 5); return false;" title="Goed!" class="five_stars">5</a></li>
  9. </ul>
  10. </span>
  11.  
  12. &nbsp; Rating (<?php echo $votes; ?>) <div style="float: left;" id="response"></div>


Javascript (alleen handle response)
  1. function rate_handle_response(response)
  2. {
  3. document.getElementById('response').innerHTML = '<b>' + response + ' | </b>';
  4. }


Background php:
  1. <?php
  2. include 'inc_db.php';
  3.  
  4. // valid ratings
  5. $nummers = array(1, 2, 3, 4, 5);
  6.  
  7. $gedicht_id = isset($_GET['id']) && ctype_digit($_GET['id']) ? $_GET['id'] : false;
  8. $rate_rating = isset($_GET['rating']) && ctype_digit($_GET['rating']) && in_array($_GET['rating'], $nummers) ? $_GET['rating'] : false;
  9.  
  10. if($gedicht_id && $rate_rating)
  11. { $query = "SELECT COUNT(*) as rated_before
  12. FROM gedicht_rate
  13. WHERE rate_user = ".**."
  14. AND rate_gedicht = ".$gedicht_id;
  15.  
  16. if(!$result = mysql_query($query))
  17. {
  18. echo 'Je kunt alleen stemmen op een gedicht als je <a href="login">ingelogd</a> en <a href="registreer/>geregistreerd</a> bent!';
  19. }
  20.  
  21. $row = mysql_fetch_assoc($result);
  22.  
  23. if(!$row['rated_before'])
  24. {
  25. $query = "INSERT INTO gedicht_rate (rate_gedicht, rate_user, rate_date, rate_ip, rate_rating)
  26. VALUES (".$gedicht_id.", ".$_SESSION['sess_memberid'].", NOW(), '".$_SERVER['REMOTE_ADDR']."', ".$rate_rating.")";
  27.  
  28. if(!$result = mysql_query($query))
  29. {
  30. echo "Error: kon rating niet toevoegen".mysql_error();
  31. }
  32. else
  33. {
  34. echo "Bedankt voor je stem!";
  35. }
  36. }
  37. else
  38. {
  39. echo "Je hebt al een keer op dit gedicht gestemd!";
  40. }
  41. }
  42. ?>


Wie kan mij helpen?

4 antwoorden

Gesponsorde links
Offline Martijn - 03/02/2010 23:19 (laatste wijziging 03/02/2010 23:19)
Avatar van Martijn Crew PHP wat je kunt doen is je huidige rating zo neer te zetten:
  1. Rating (<span id="huidigCijfer"><?php echo $votes; ?></span>)


Op die manier heb je een klein stukje die je met getElementById() kan beheersen.

in je rate() functie doe je dit:

  1. var aantalStemmen = <?php echo $hoevaakErGestemtIs;?>;
  2. var aantalPunten = <?php echo $hoeveelPuntenDatTotaalIs;?>;
  3. aantalStemmen += 1; // user heeft gestemt, dus +1
  4. aantalPunten += HoeveelPuntenGestemt; //daarna erbij tellen hoeveel punten de user het geeft
  5. var average = aantalPunten/aantalStemmen;
  6. document.getElementById('huidigCijfer').innerHTML = average;


Ik hoop dat je hier een eind mee komt 
Offline Rmy - 04/02/2010 01:50
Avatar van Rmy Nieuw lid Het probleem is dus dat alleen dat dit uitgevoerd moet worden als dus de rate ook succesvol is uitgevoerd. Oftewel als het volgende wordt doorgegeven: "Bedankt voor je stem!".

Daarnaast wist ik niet dat je in JavaScript bestand php kan gebruiken?
Offline Martijn - 04/02/2010 12:24
Avatar van Martijn Crew PHP oh, dat kan niet nee, php in JS, tenzij je het in een php bestand zet. Het beste is dan alleen die functie in je index.php te zetten, en de rest lekker in je js bestand laat staan
Offline Rmy - 04/02/2010 21:38
Avatar van Rmy Nieuw lid En als ik nu het toch zo doe:

  1. Rating (<span id="huidigCijfer"><?php echo $votes; ?></span>)


Kan ik die waarde dan nergens in Javascript ophalen 1 erbij tellen en weer terug gooien in de span huidigCijfer?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.289s