Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z JS i PHP - same cyfry
Forum PHP.pl > Forum > PHP
damianpsp2000
Witam.
Mam problem robię sklep z ubraniami i mam taki skrypt JS:

  1. <script type="text/javascript">
  2. function showCena(ile, nazwa){
  3. var tekst_x = "Nazwa:<b> "+nazwa+"</b>,<br />Koszt:<b> "+ile+"</b> zł,<br />Kliknij, aby zakupić przedmiot!";
  4. $(".cloud_text").html(tekst_x);
  5. $("#cloud").css("display", "block");
  6. }
  7. function hideCena(){
  8. $(".cloud_text").html("");
  9. $("#cloud").css("display", "none");
  10. }
  11. function sklep_ajax(id){
  12. $.get("../functions/sklep_ajax.php?id="+id, function(msg){
  13. if(msg == "ok"){
  14. showError("Zakupiono przedmiot! Jest już w szafie!");
  15. }
  16. else{
  17. showError(msg);
  18. }
  19. });
  20. }
  21. </script>


i taki php:

  1. while($u = mysql_fetch_array($pobierz_ubrania)){
  2. echo'<img onmouseover="showCena('.$u['cena'].', 'nie działa')" onmouseout="hideCena();" onclick="sklep_ajax('.$u['id'].');" src="'.$u['obrazek'].'"></img>';
  3. }


i jeżeli w php w onmouseover w drugiej zmiennej funkcji napiszę jakąś liczbę to działa ale jeżeli jest np. "nie działa" - to wtedy nie działa;/
Nie wiem jak zrobić by było wszystko ok;/
Tak gdyby same liczby w funkcji "showCena()" działały a stringi nie;/

Pozdrawiam.
Pawel_W
bo stringi kolego obejmuje się apostrofami, bądź cudzysłowami - w przypadku liczb nie ma takich wymagań smile.gif
damianpsp2000
  1. while($u = mysql_fetch_array($pobierz_ubrania)){
  2. echo'<img onmouseover="showCena('.$u['cena'].', "asdasdasd");" onmouseout="hideCena();" onclick="sklep_ajax('.$u['id'].');" src="'.$u['obrazek'].'"></img>';
  3. }


ok mam tak:)
i dalej to samo..
vokiel
Dajesz "asdasdasd" w środku atrybutu onmouseover, przy czym pierwszy cudzysłów zamyka wartość tego atrybutu. Podejrzyj sobie wynikowy kod to od razu zobaczysz gdzie jest błąd.

Edit: Druga rzecz, po co Ci twarde przypisywanie onclick, skoro możesz wykorzystać bindowanie.
damianpsp2000
ok, poradziłem sobie z tym i wszystko już działa ale mam inny problem..
mam taki skrypt:

  1. function coRob($czas_do_zapisu){
  2. mysql_query("UPDATE users SET co_robisz_czas = '".$czas_do_zapisu."' WHERE id = '".$gracz['id']."'");
  3. }


i jak wywołuję tą funkcję to robię tak:
  1. coRob('time()+3600*8');


lub tak:
  1. coRob(time()+3600*8);


i nie działa..
ale jeżeli normalnie wykonam zapytanie do bazy czyli zamiast wywołania funkcji wstawię:

  1. mysql_query("UPDATE users SET co_robisz_czas = '".$czas_do_zapisu."' WHERE id = '".$gracz['id']."'");


to wtedy działa..
Dlaczego tak się dzieje? Dodam, że nie wyświetla żadnego błędu..
Pawel_W
a skąd bierzesz gracz['id']? to jest tablica globalna? nie wydaje mi się wink.gif
vokiel
Jeśli wszędzie przekazujesz "time()+3600*8" to jest to całkowicie zbyteczny parametr, podawaj go bezpośrednio w zapytaniu, lub używaj go jako domyślnego. Po drugie, nie przekazujesz id gracza.

  1. function coRob($gracz_id,$czas_do_zapisu=null){
  2. if ( empty($czas_do_zapisu) ){
  3. $czas_do_zapisu = time()+3600*8;
  4. }
  5. mysql_query("UPDATE users SET co_robisz_czas = '".$czas_do_zapisu."' WHERE id = '".$gracz_id."'");
  6. }
  7.  
  8. // użycie
  9. coRob($gracz['id']);
  10. // lub
  11. $czas = time()+3600*8;
  12. coRob($gracz['id'],$czas);


damianpsp2000
ok no i mam coś takiego:

  1. function coRb($tekstxx, $czas_do_zapisuxx, $id){
  2. mysql_query("UPDATE users WHERE co_robisz = '".$tekstxx."', co_robisz_czas = '".$czas_do_zapisuxx."' WHERE id = '".$id."'");
  3. }


wywołuję tak:

  1. coRb('Udoskonalanie umiejętności ('.$_GET['procenty'].'% '.$_GET['nazwa'].')', $czas_do_aktywnosci, $gracz_2['id']) or die('błąd');


i cały czas wyświetla się "błąd" nie wiem dlaczego to nie działa..
wszystkie parametry podane w wywołaniu są prawidłowe..
vokiel
Bo nic nie zwracasz w funkcji coRb
damianpsp2000
a co mam zwracać? Prawdę? Czyli "return true;"?
mastermindssj2
  1. function coRb($tekstxx, $czas_do_zapisuxx, $id){
  2. mysql_query("UPDATE users WHERE co_robisz = '".$tekstxx."', co_robisz_czas = '".$czas_do_zapisuxx."' WHERE id = '".$id."'");
  3. $valid = empty(mysql_error());
  4. return $valid;
  5. }

Tak na marginesie te funckje mysql są zdeprecjonowane, ale pewnie się tym zbytnio nie przejmujesz smile.gif
damianpsp2000
no niestety to nie działa..
Fatal error: Can't use function return value in write context..?

Pozdro.
mastermindssj2
  1. function coRb($tekstxx, $czas_do_zapisuxx, $id){
  2. mysql_query("UPDATE users WHERE co_robisz = '".$tekstxx."', co_robisz_czas = '".$czas_do_zapisuxx."' WHERE id = '".$id."'");
  3. $valid = (mysql_error() == '') ? true : false;
  4. return $valid;
  5. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.