Multidesk.be » Forums » Webdevelopment & -scripting » getJSON werkt niet

  • Pagina
  • 1 van 1
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door Toren op dinsdag 23 oktober 2012 om 01:18:05.
Toren heeft nog geen avatar toegevoegd
Multiviteit: 230
Hoi ik heb een video.json (http://www.leungjan.be/test/video.json) met wet inhoud

deze array van tekst wil ik aanroepen via de json.html .... maar lukt me niet zo !!

hier mijn code van de HTML
PHP
  1.  
  2. <!DOCTYPE html>
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4.  
  5. <head>
  6. <script src="http://code.jquery.com/jquery-latest.js"></script>
  7. <script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>
  8. <script type="text/javascript">
  9.  
  10.  $.getJSON('http://leungjan.be/test/video.json', function(data) {
  11.   $('.result').html('<p>' + data.whitelabelhash + '</p>'
  12.     + '<p>' + data.playerSkinWidth + '</p>');
  13. });
  14.  
  15.   </script>
  16. </head>
  17. <body>
  18.   <div>
  19.   </div>
  20. </body>
  21. </html>
  22.  
  23.  


waarom werkt het niet ?
ik zie enkel maar een lege pagina :-(
^ Reactie #1 geschreven door Toren op dinsdag 23 oktober 2012 om 11:48:03.
Toren heeft nog geen avatar toegevoegd
Multiviteit: 230
raar maar via de tool => http://www.tutorialspoint.com/cgi-bin/practice.cgi?file=jquery_110 zet ik mijn url dat verwijst naar de video.json file
maar doet het nog steeds niet !?

PHP
  1.  
  2. <html>
  3. <head>
  4. <title>the title</title>
  5.    <script type="text/javascript"
  6.    src="/jquery/jquery-1.3.2.min.js"></script>
  7.    <script type="text/javascript" language="javascript">
  8.    $(document).ready(function() {
  9.       $("#driver").click(function(event){
  10.           $.getJSON('http://www.leungjan.be/test/video.json', function(jd) {
  11.              $('#stage').html('<p> Name: ' + jd.whitelabelhash+ '</p>');
  12.              $('#stage').append('<p>Age : ' + jd.playerWidth+ '</p>');
  13.              $('#stage').append('<p> Sex: ' + jd.sex+ '</p>');
  14.           });
  15.       });
  16.    });
  17.    </script>
  18. </head>
  19. <body>
  20.    <p>Click on the button to load result.json file:</p>
  21.    <div id="stage" style="background-color:red;">
  22.           STAGE
  23.    </div>
  24.    <input type="button" id="driver" value="Load Data" />
  25. </body>
  26. </html>
  27.  
  28.  
^ Reactie #2 geschreven door Toren op dinsdag 23 oktober 2012 om 18:50:35.
Toren heeft nog geen avatar toegevoegd
Multiviteit: 230
kan ik de javascript uitlezen van uit een andere pagina ?
voorbeeld => http://www.leungjan.be/test/player.html

ik dus die 'new video' parameters moeten uitlezen met getJSONP !
Gaat dat ?
^ Reactie #3 geschreven door thekid op dinsdag 23 oktober 2012 om 19:09:29.
thekid's avatar
Multiviteit: 5273
Moderator
hey toren,

ik ga vanavond eens meekijken met je :)
als iemand anders voor is, hou jullie niet in natuurlijk :)
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #4 geschreven door Toren op dinsdag 23 oktober 2012 om 19:46:45.
Toren heeft nog geen avatar toegevoegd
Multiviteit: 230
dank je,

begrijp je mijn vraag ? omdat niemand antwoord ?
^ Reactie #5 geschreven door thekid op woensdag 24 oktober 2012 om 01:06:07.
thekid's avatar
Multiviteit: 5273
Moderator
wel, ik weet nog niet 100% wat je net wilt doen.

wil je enkel weten hoe de json werkt?

ivm je eerste vraag, als je http server het type .json niet ondersteund, dan zal javascript enkel een foutmelding ontvangen dat deze pagina niet kan geserveerd worden, je kan evengoed een html extensie gebruiken voor je json call, of een server side taal die de json zelf terugstuurd.

In je tweede vraag heb je een bijkomend probleem, omdat je een cross domain requests gebruikt.

Nu, de code zelf heb ik nog niet bekeken, maar ik probeer je wat info mee te geven over hoe het te doen.

een voorbeeldje:
file: index.html
CODE
  1. <html>
  2. <head>
  3.   <title>Dynamic load</title>
  4.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.   <script src="http://code.jquery.com/jquery-latest.js"></script>
  6.   <script type="text/javascript">
  7.     function displayObject(name, obj,lvl) {
  8.       var msg = '<div style="padding-left: ' + (lvl * 10) + 'px;">';
  9.       if (!lvl)
  10.         lvl = 0;
  11.       for (var i in obj) {
  12.         if (obj[i]) {
  13.           var tp = typeof obj[i];
  14.           if (tp != "object") {
  15.               msg += '<span style="display: block;">';
  16.               msg += name + '.' + i + ' = "' + obj[i] + '"';
  17.               msg += '</span>';
  18.           } else {
  19.             msg += displayObject(name + '.' + i, obj[i],lvl+1);
  20.           }
  21.         }
  22.       }
  23.       msg += '</div>';
  24.       return msg;
  25.     }
  26.  
  27.     var handler = (function() {
  28.       var handler;
  29.       window.handler = handler;
  30.       handler = {
  31.         loadRequest: function(url, target) {
  32.           var sUrl = typeof url == "string" && url.substring(0,1) != '#' ? url : $(url).val(); // when it is a string and does not start with a selector, use the string, otherwise get the value from the referred html element.
  33.           $.getJSON(
  34.             sUrl, function(data) {
  35.               $(target).html(displayObject('obj',data,1));
  36.             }
  37.           );
  38.         }
  39.       };
  40.       return handler;
  41.     })();
  42.    
  43.     $(document).ready(function() { handler.loadRequest('./json.html', '#onLoadDiv'); });
  44.   </script>
  45.   <style type="text/css">
  46.     body,html { font-family: 'Arial'; font-size: 1em; }
  47.     #valueTable
  48.     {
  49.       border-spacing: 1px;
  50.       background-color: #a0a0a0;
  51.       width: 100%;
  52.     }
  53.     #valueTable td
  54.     {
  55.       padding: 5px;
  56.       text-align: left;
  57.       vertical-align: top;
  58.       width: 50%;
  59.     }
  60.     #valueTable td .content
  61.     {
  62.       background-color: #ffffff;
  63.       color: #000000;
  64.       border: solid #666666 1px;
  65.       padding: 10px;
  66.     }
  67.   </style>
  68. </head>
  69. <body>
  70. <table id="valueTable">
  71.   <tr>
  72.     <td>
  73.       <h1>On load data</h1>
  74.       <div class="content" id="onLoadDiv"></div>
  75.     </td>
  76.     <td>
  77.       <h1>On request data (click button)</h1>
  78.       <div class="content" id="onRequestDiv"></div>
  79.       <input type="text" id="txtUrlToLoad" value="./json.html" />
  80.       <input type="button" id="btnLoadRequest" value="Load data" onclick="handler.loadRequest('#txtUrlToLoad', '#onRequestDiv');" />
  81.     </td>
  82.   </tr>
  83. </table>
  84. </body>
  85. </html>


file: json.html
CODE
  1. {
  2. "Name": "Your name",
  3. "Jobs":
  4.   {
  5.     "Job1" : { "Description" : "Waiter","At": "A pub", "For": "1 month" },
  6.     "Job2" : { "Description" : "Assembly line", "At" : "Electronics company" },
  7.     "Job3" : { "Description" : "Web Developer", "At" : "Design company" }
  8.   }
  9. }


zolang beide files op dezelfde server staan zie ik niet direct problemen met het script. hoop dat het je wat helpt.
Deze tekst werd het laatst bewerkt voor 69.57 % door thekid op woensdag 24 oktober 2012 om 02:07:22.
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #6 geschreven door Toren op woensdag 24 oktober 2012 om 16:37:55.
Toren heeft nog geen avatar toegevoegd
Multiviteit: 230
ik ga deze proberen uit te voeren ... maar snap er niet veel van :-(
^ Reactie #7 geschreven door Toren op woensdag 24 oktober 2012 om 16:59:59.
Toren heeft nog geen avatar toegevoegd
Multiviteit: 230
wat ik in feite wil proberen is ....

een object gemakkelijk door geven aan een php ... voorbeeld
http://webtips.cindycullen.com/how-to-pass-an-object-from-php-to-javascript-and-back-again-using-json/2010/09/28/

enkel moet je vanuit de 1 ste pagina op een knop klikken en dan naar zie je de parameter in de url.
deze wordt dan gelezen in de 2 de pagina

voorbeeld => http://www.leungjan.be/test/test1.php


het zou gemakkelijker zijn moest ik direct de pagina test1.php kunnen aanroepen met zijn parameters in test2.php

Als ik start via test2.php krijg ik => http://leungjan.be/test/test2.php?j={%2leungjan.be/test/test2.php !!!


Deze tekst werd het laatst bewerkt voor 20.52 % door Toren op woensdag 24 oktober 2012 om 17:06:09.
^ Reactie #8 geschreven door thekid op woensdag 24 oktober 2012 om 21:49:30.
thekid's avatar
Multiviteit: 5273
Moderator
je zal eens heel duidelijk moeten zijn in wat je net wilt :)

in je php bestand kan ik nl niet in de bron gaan kijken, ik zie enkel wat foutmeldingen


alsook, je mag me steeds vragen wat je niet verstaat in de code die ik voorheen doorstuurde, ik kan je er altijd wel mee helpen
Deze tekst werd het laatst bewerkt voor 30.57 % door thekid op woensdag 24 oktober 2012 om 21:50:08.
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #9 geschreven door Toren op donderdag 25 oktober 2012 om 18:03:01.
Toren heeft nog geen avatar toegevoegd
Multiviteit: 230
ok ik zal proberen wat duidelijker te zijn.

ik heb dus een html page met daarin een javascript array
PHP
  1.  
  2. <html>
  3.  
  4. <script src="http://www....be/test/layer.php"></script>
  5. <script type="text/javascript">
  6.  
  7. var myColumnDefs = [{
  8.     whitelabelhash: "eccbc87e4b5ce2fe28308fd9f2a7baf3",
  9.         videohash: "4b6538a44a1dfdc2b83477cd76dee98e",
  10.         playerhash: "1679091c5a880faf6fb5e6087eb1b2dc",
  11.         playerSkinAutoPlay:"0",
  12.         playerSkinBottomZoneVisual:"0",
  13.         playerSkinWidth:"400"},
  14.  
  15. </script>
  16.  
  17. <head>titel
  18. </head>
  19.  
  20. <body>
  21. </body>
  22.  


via een php file zou ik graag de array willen uitlezen.
maar hiermee zit ik vast ;-(

sommigen zeggen dat ik JSON moet gebruiken
maar ik zou het graag heel éénvoudig willen zien.

dus gewoon een php file dat die array leest,weergeeft en waar ik meeverder kan werken



Deze tekst werd het laatst bewerkt voor 2.33 % door Toren op donderdag 25 oktober 2012 om 18:08:00.
^ Reactie #10 geschreven door Toren op donderdag 25 oktober 2012 om 20:02:33.
Toren heeft nog geen avatar toegevoegd
Multiviteit: 230
Dit heb ik tot hier toe .. maar werkt niet

PHP
  1.  
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4.         <head>
  5.                 <title></title>
  6.                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7.         </head>
  8.         <body>
  9.  
  10. <script type="text/javascript">
  11.  
  12.  
  13. //var xhr = Titanium.Network.createHTTPClient();
  14.     var postData = {
  15.         "whitelabelhash": "fezrf",
  16.                 "videohash": "ergre",
  17.                 "playerhash": "bbbbbbb",
  18.                 "Play":"0",
  19.                 "Width":"400"
  20.     }
  21.  
  22. var jsonstr = JSON.stringify(postData);
  23.         //alert(jsonstr);
  24.        
  25.         var xmlhttp = new XMLHttpRequest;
  26.         xmlhttp.onreadystatechange = function()
  27.         {
  28.                 if(xmlhttp.readyState ==4)
  29.                 {
  30.                         alert(xmlhttp.responseText);
  31.                 }
  32.        
  33.         }
  34.         serverURL = "http://www.leungjan.be/test/insert.php?json="+encodeURIComponent(jsonstr);
  35.         alert(serverURL);
  36.         xmlhttp.open("GET",serverURL,true);
  37.         xmlhttp.send(null);
  38.  
  39. }
  40. </script>
  41.  
  42. </body>
  43.  
  44. </html>
  45.  


de php waar ik normaal de array opvang

PHP
  1.  
  2. <?php
  3.  
  4. //echo function_exists('json_decode') ? 'json_decode exists' : 'json_decode does not exist'; 
  5.  
  6. if (isset($_GET['json'])) {
  7.     //echo "true";
  8.     $jsonStr = stripslashes($_GET['json']);
  9.     $phpobj  = json_decode($jsonStr);
  10.     echo 'egzergzerg  '. $phpobj;
  11.     echo $phpobj['playerhash'];
  12.     // $jsonstr= json_encode($phpassoc);
  13.     //echo $jsonstr;
  14. } else {
  15.     print_r($_GET);
  16. }
  17. ?>
  18.  


maar werkt niet .. ik krijg op mijn page 'array()' te zien.
Deze tekst werd het laatst bewerkt voor 1.89 % door Toren op donderdag 25 oktober 2012 om 20:03:27.
^ Reactie #11 geschreven door Toren op donderdag 25 oktober 2012 om 22:02:00.
Toren heeft nog geen avatar toegevoegd
Multiviteit: 230
ach werk toch niet


Deze tekst werd het laatst bewerkt voor 78.63 % door Toren op donderdag 25 oktober 2012 om 22:32:40.
^ Reactie #12 geschreven door Toren op zaterdag 27 oktober 2012 om 20:53:03.
Toren heeft nog geen avatar toegevoegd
Multiviteit: 230
ik doe het nu via php
^ Reactie #13 geschreven door thekid op maandag 29 oktober 2012 om 08:28:52.
thekid's avatar
Multiviteit: 5273
Moderator
ik zal het met alle plezier eens bekijken in deze week en je een voorbeeldje terugsturen, maar momenteel hebben wij gasten in huis, en kon ik mij dus niet zoveel voor de pc zetten (behalve na middernacht maar dat lukt ook niet alle dagen :D)
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #14 geschreven door Toren op maandag 29 oktober 2012 om 20:15:44.
Toren heeft nog geen avatar toegevoegd
Multiviteit: 230
hoi thekid
dank je

  • Pagina
  • 1 van 1

Snel-antwoordformulier
Toon uitgebreid antwoordformulier Bericht nalezen Bericht plaatsen