Autor Zpráva
quiced
Profil
Zdravím,

už delší dobu se peru s tím jak dostat data z databáze pomocí jquery konkrétně to potřebuji proto, abych vytvořil slider, který bude měnit hodnoty, které bude brát právě z databáze. Vytvořil jsem si takovýto jquery script.

   $("#slider-amount").slider({
       range: "min",
       value: 450000,
       min: 100000,
       max: 1000000,
       step: 50000,
       slide: function( event, ui ) {
          $( "#amount" ).val( ui.value);   
       },
       stop: function( event, ui ){
          $("form#calculator").trigger("change");               
       }
   });


    
   $("form#calculator").bind("change", function(){
       var hodnoty = $("#calculator").serialize();
       
       $.ajax({
          type: 'POST',
          url: "vypocet.php",
          data: hodnoty,
          cache: false,
          success: function(response){                        
            
               $( "#vypocet_splatka" ).html( response.splatka + " Kč");
              $( "#vypocet_pocet_splatek" ).html( response.pocet_splatek + " měsíců");
              $( "#vypocet_celkem" ).html( response.celkem + " Kč");
              
       
                                    
          },
          dataType: "JSON"
       }); 
              
   }); 

Bohužel jsem již nikde nenašel návod jak vytvořit soubor vypocet.php a s tím bych potřeboval hlavně pomoct. Po přečtení desítek článků jsem si vytvořil toto:
<?php

echo json_encode(array('splatka' => '1000', 'celkem' => '1000');
    header('Content-Type: application/json');
?>

ale musím říct, že mi to z nějakého důvodu nefunguje. Kdyby mi s tím někdo pomohl byl bych mu velice vděčný.

Díky všem za pomoc.
Taps
Profil
quiced:
zkus to trošku upravit
  $("form#calculator").bind("change", function(){
       var hodnoty = $("#calculator").serialize();
       
       $.ajax({
          type: 'POST',
          url: "vypocet.php",
          dataType: "JSON",
          data: hodnoty,
          cache: false,
          success: function(response){                        
            
               $( "#vypocet_splatka" ).html( response.splatka + " Kč");
              $( "#vypocet_pocet_splatek" ).html( response.pocet_splatek + " měsíců");
              $( "#vypocet_celkem" ).html( response.celkem + " Kč");
              
       
                                    
          }
         
       }); 
              
   }); 
quiced
Profil
Bohužel to nepomohlo, myslím si, že největší problém bude v tom PHP souboru, ale jsem v jquery úplný začátečník takže nevím.
Taps
Profil
quiced:
a jakou chybu hlásí konzole ve firefoxu ?
Fisir
Profil
Reaguji na quiceda:
Hlavičky se musejí posílat před jakýmkoli výstupem, ale pochybuji, že tohle je ten problém.
juriad
Profil
quiced:
V php musíš odeslat hlavičku (header) před výpisem.
<?php
# zkontroluj, zda před tímto nemáš žádný bílý znak (mezeru, odřádkování, BOM)
header('Content-Type: application/json');

# 1000 je číslo, proč ho zapisuješ jako řetězec?
echo json_encode(array('splatka' => 1000, 'celkem' => 1000);

# značka ? > konce není nutná
quiced
Profil
Tak já nevím upravil jsem to podle Vašich rad, ale výsledek žádný respektive to hodnotu z toho arraye nenačítá.
Taps
Profil
quiced:
zkus dát odkaz na živou ukázku
juriad
Profil
quiced:
Zkus si dát breakpoint do success callbacku (v Tapsiho řešení řádek 11) a podívat se na hodnotu proměnné response.
quiced
Profil
juriad:
Můžeš mi prosím poradit jak napsat ten breakpoint, jak jsem psal jsem v jquery začátečník.

Díky moc


Taps:
Zatím to mám na localhostu, ale hodím to live a pošlu odkaz.
juriad
Profil
quiced:
V prohlížeči dáš F12, přepneš se na kartu JavaScript, najdeš příslušnou řádku, vytvoříš breakpoint - místo, kde se má skript zastavit.
Pak provedeš akci, která způsobí AJAXové volání a podíváš se na proměnné v místě, kde se ti skript zastavil.

Nastuduj si, jak se používají vývojářské nástroje v tvém prohlížeči; bez toho prakticky nemůžeš vyvíjet web.
http://jecas.cz/vyvojarske-nastroje
quiced
Profil
Pokud by byl někdo tam hodný a mrknul na to tak zde je celý slider: http://hypo.ipartak.cz/?page_id=2 a tento script to obsluhuje http://hypo.ipartak.cz/wp-content/themes/hypopujcka/js/lc-jquery.js

Kdyby někdo přišel na způsob jak to zprovozni byl bych mu moc vděčný.

Díky za dosavadní nápovědu.
DarkMeni
Profil
Jak vypadá soubor "vypocet.php", konkrétně 3. řádek a několik řádků na ním a pod ním?
Vypisuje totiž toto:
Parse error: syntax error, unexpected ';' in /data/web/virtuals/48319/virtual/www/domains/hypo.ipartak.cz/wp-content/themes/hypopujcka/vypocet.php on line 3

U [#6] není na 3. řádku ukončovací závorka pro funkci json_encode, tak to bude nejspíš tím
quiced
Profil
DarkMeni:
Máš pravdu zapomněl jsem tam závorku, tu jsem tam dodal. Ten php soubor již nevypisuje chybu, ale hodnoty, bohužel ten jqery script to stále nebere.


Tak nakonec jsem se to celé rozhodl udělat trochu jinak, ale narazil jsem na menší problém. Nemohl by mi někdo poradit jak se v jquery vyhledávají hodnoty respektive mám takovéto pole:
{prvni: "100", druhy: "200", treti: "300"}

a potřebuju zobrazit a to divu načíst hodnutu prvni. Můžete mi prosím poradit pomocí, jaké funkce to udělám.

Díky moc
DarkMeni
Profil
Třeba
var objekt = {prvni: "100", druhy: "200", treti: "300"}
var prvni = objekt.prvni;
//nebo
var prvni = objekt["prvni"];
Když nevíš jaký sou klíče v tom objektu, tak to už nebude tak jednoduchý, ale mělo by to jít třeba takto:
for (var klic in objekt) { //Do proměnné "klíč" uloží název prvního prvku v objektu a zastaví cyklus
  break;
}
var prvni = objekt[klic];

A nebo nejjednodušší by bylo, kdyby si to měl v indexovaným poli
var pole = ["100", "200", "300"];
var prvni = pole[0];

Jinak musí být ty čísla v řetězci?
quiced
Profil
DarkMeni:
Díky za nápovědu již jsem to vyřešil sám následovně
var valueFromSlider = "prvni";

//lc_jqpost_value je ten JSON objekt

if(lc_jqpost_info[valueFromSlider] !== undefined) {
    document.getElementById("vypocet_splatka").innerHTML = lc_jqpost_info[valueFromSlider];
}

Každopádně díky všem za všechny rady

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: