Stránka 1 z 2

[JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 14:04
od nofire
Zdar, šel jsem torchu do sebe a začal na stránkách používat JQuery. Mám ale začátečnícký problém a předem upozorňuji, že odpověď na můj problém jsem hledal na Google i tady a nikde jsem se nenašel odpověď.

Takže prosím pokud mi někdo můžete pomoci s tímhle. Posílám zkušební data s parametrem a čekám na ně odpověď v message boxu, ale žádná hláška s výsledkem nevyskočí i když data přijdou. To jsem zjistil tak, že jsem se podíval prográmkem SmartSniff na síťovou komunikaci. Myslím, že z kódu bude vše jasné.
Kód: Vybrat vše
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
  <meta content="cs" http-equiv="Content-Language" >
  <title>JQUERY</title>
  <script type="text/javascript" src="scripts/jquery-2.1.3.min.js"></script>
</head>
<body>
<script type="text/javascript">
  $(document).ready(function() {
    $('#volba').change(function() {
    //alert($('#volba').val());
       $.getJSON("posli4.asp?q=" +  $('#volba').val(),function(vystup){
        alert("ID vína je: " + vystup.vt_id + " a název je: " + vystup.vt_nazev);
       });
     });
  });
</script>   
<form>
   Vyber víno:
   <select name="jmeno" id="volba" >
      <option value="2">Bílé
      <option value="4">Červené
      <option value="5">Růžové
   </select >
</form>
</body>
</html>


soubor posli.asp vypadá takhle:
Kód: Vybrat vše
<!--#include file="conn.asp"-->
<%
sql = "SELECT * FROM vinoteka WHERE vt_id='" & Request.QueryString("q") & "'"
vysledek.Open sql, spojeni
response.write vysledek.fields("vt_id")
response.write vysledek.fields("vt_nazev")
%>

Soubor conn.asp zde neuvádím, protože připojení do databáze funguje.

Díky za pomoc ;-)

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 14:13
od Wikan
Program na síťovou komunikaci snad nepotřebuješ, tohle umí i samotné browsery (F12). Co přesně přijde jako odpověď?

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 14:26
od nofire
Díky, máš určitě pravdu s klávesou F12, ale ve FF mi to nedá přijatá data. Ale asi to neumím používat.

Takže mě přijde tohle :
Kód: Vybrat vše
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 16
Content-Type: text/html
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
Date: Tue, 30 Dec 2014 13:28:10 GMT

2,Alibernet Rose
           

Není tam čeština, což by mi tak nevadilo. Ještě jsem do toho posli.asp dodělal čárku jako oddělovač což v kódu v náhledu posli.asp není (jen pro pořádek).

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 14:31
od Wikan
No sám vidíš, že tam není žádné vt_id a vt_nazev. Proč vůbec myslíš, že je to JSON?

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 14:41
od nofire
No já si to myslím, proto, že jsem to dělal podle nějakého návodu tady : http://citron.blueboard.cz/clanek/jquery-pro-zacatecniky-ajax .

Ok, posli.asp jsem upravil tak aby to dával tak jak si myslím, že by to mělo být. Ale asi je to špatně, protože to taky nejde.
Kód: Vybrat vše
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 31
Content-Type: text/html
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
Date: Tue, 30 Dec 2014 13:38:52 GMT

vt_id:2,vt_nazev:Alibernet Rose

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 14:44
od Wikan
Ten JSON by měl vypadat nějak takhle:
Kód: Vybrat vše
{vt_id:2,vt_nazev:"Alibernet Rose"}

Ostatně na té stránce to píšou.

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 14:51
od nofire
Jasně, ale já to odesílám z ASP a ne z PHP.

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 14:53
od Wikan
JSON je JSON a je jedno, jakým způsobem ho vytváříš.

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 14:58
od nofire
OK, tak jsem to přepsal. Bohužel to nechodí. myslíš, že problém je na straně serveru, ža to posílá špatně ? Teď je to takhle:

posli.asp
Kód: Vybrat vše
<!--#include file="conn.asp"-->
<%
sql = "SELECT * FROM vinoteka WHERE vt_id='" & Request.QueryString("q") & "'"
vysledek.Open sql, spojeni
response.write "{vt_id" & ":" & vysledek.fields("vt_id") & ","
response.write "vt_nazev" &  ":""" & vysledek.fields("vt_nazev") & """}"
%>


a server vrátí toto:
Kód: Vybrat vše
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 35
Content-Type: text/html
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
Date: Tue, 30 Dec 2014 13:54:32 GMT

{vt_id:2,vt_nazev:"Alibernet Rose"}

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 15:05
od Wikan
Co to udělá, když tam bude jenom:
Kód: Vybrat vše
alert(vystup);

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 15:06
od JVIC
response.write... To určitě nebude správné řešení. Výsledek vypadá že je ok, ale určitě se z ASP dá odeslat JSON odpověď elegantněji než vytvářet odpověď přes skládání řetězců.

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 19:37
od nofire
Wikan> Tak když napíšu Alert(vystup); tak je to stejnější ;-) .

JVIC > No to se mi taky moc nelíbí, takhle skládat odpověď. To určitě není ta správná cesta. Ale s ASP se asi moc nedělá, protože příkladů pro PHP je na netu fůra.

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 30. 12. 2014 20:08
od Wikan
V konzoli to vypisuje nějakou chybu? Proč vůbec používáš ASP? To je 15 let stará technologie.

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 31. 12. 2014 07:06
od nofire
V konzoli to nevypisuje žádnou chybu, protože ty data normálně přijdou, jen se nezobrazí.

ASP je sice starší, ale je to čistější kód, který při vrácení dotazu nezaneřádí stránku balastem jako ASP.NET. Už mám hotovou aplikaci a předělávat to do PHP se mi moc nechce.

Re: [JQuery] Zobrazení přijatých dat po JSON

Odeslat příspěvekNapsal: 31. 12. 2014 08:44
od Wikan
A funguje ti vůbec alert()?
Jinak ASP.NET ti stránku zaneřádí, jenom když to neumíš.