Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Resultaten kunnen niet gelezen worden in jquery

Pagina: 1
Acties:

  • Kenny_026
  • Registratie: Juli 2007
  • Niet online
(overleden)
Hallo,

ik heb een stukje code met de naam takenlijst.php. Deze code ziet er als volgt uit...

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="../../jquery/jqwidgets/styles/jqx.base.css" type="text/css" />
    <script type="text/javascript" src="../../jquery/scripts/jquery-1.10.2.min.js"></script>
    <script type="text/javascript" src="../../jquery/jqwidgets/jqxcore.js"></script>
    <script type="text/javascript" src="../../jquery/jqwidgets/jqxdata.js"></script> 
    <script type="text/javascript" src="../../jquery/jqwidgets/jqxbuttons.js"></script>
    <script type="text/javascript" src="../../jquery/jqwidgets/jqxscrollbar.js"></script>
    <script type="text/javascript" src="../../jquery/jqwidgets/jqxmenu.js"></script>
    <script type="text/javascript" src="../../jquery/jqwidgets/jqxgrid.js"></script>
    <script type="text/javascript" src="../../jquery/jqwidgets/jqxlistbox.js"></script>
    <script type="text/javascript" src="../../jquery/jqwidgets/jqxdropdownlist.js"></script>
    <script type="text/javascript" src="../../jquery/jqwidgets/jqxgrid.sort.js"></script>
    <script type="text/javascript" src="../../jquery/jqwidgets/jqxgrid.filter.js"></script>
    <script type="text/javascript" src="../../jquery/jqwidgets/jqxgrid.selection.js"></script> 
    <script type="text/javascript" src="../../jquery/jqwidgets/jqxgrid.columnsresize.js"></script> 
    <script type="text/javascript" src="../../jquery/scripts/demos.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            // prepare the data
            var source =
            {
                datatype: "json",
                datafields: [
                { name: 'taaknummer', type: 'string'},
                { name: 'naam', type: 'string'},
                { name: 'taak', type: 'string'},
                { name: 'prioriteit', type: 'string'},
                { name: 'datum', type: 'string'}
                ],
                url: 'takenlijstdata.php', 
                cache: false
            };

            var dataAdapter = new $.jqx.dataAdapter(source);

            $("#jqxgrid").jqxGrid(
            {
                source: dataAdapter,
                columns: [
                { text: 'Taaknummer', datafield: 'taaknummer', width: 250},
                { text: 'Naam', datafield: 'naam', width: 150 },
                { text: 'Taak', datafield: 'taak', width: 180 },
                { text: 'Prioriteit', datafield: 'prioriteit', width: 200 },
                { text: 'Datum', datafield: 'datum', width: 120 }
                ]
            });
        });
     </script>
</head>
<body class='default'>
 <div id="jqxgrid"></div>
</body>
</html>


De data moet dus uit takenlijstdata.php gelezen worden. Als ik takenlijstdata.php oproep dan word deze array ook netjes weergegeven. Hieronder het stukje code,

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$query = "SELECT * FROM takenlijst";
$from = 0; 
$to = 999;
$query .= " LIMIT ".$from.",".$to;
$result = mysql_query($query) or die("SQL Error 1: " . mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $taken[] = array(
    'taaknummer' => $row['taaknummer'],
    'naam' => $row['naam'],
    'taak' => $row['taak'],
    'prioriteit' => $row['prioriteit'],
    'datum' => $row['datum']
      );
}
echo json_encode($taken);


Als ik deze data dus wil ophalen via takenlijst.php dan word de data niet uitgelezen. Het vreemde is dat als ik de uitvoer van de data in een text bestandje zet dan word deze wel ingelezen.

Heeft iemand enig idee hoe ik de data goed kan uitlezen?

  • gitaarwerk
  • Registratie: Augustus 2001
  • Niet online

gitaarwerk

Plays piano,…

probeer in plaats van document.ready eens window.load. Document ready geeft aan dat alle teksten en dergelijke zijn ingeladen. maar alle referenties naar andere bestanden nog niet.

Probeer dat eerst eens :) (ik neem aan dat je deze info via ajax inlaad dus?)

Ik volg je document niet helemaal, want je opent de php tags en vervoglens zet je er html(5) neer. Dit voorbeeld werkt daarom al niet echt. Heb je een live voorbeeld waar we kunnen kijken?


Overigens; Javascript bestanden kun je tegenwordig beter in de footer plaatsen (zo laadt de inhoud daadwerkelijk eerst, en hoef je niet te wachten voor de scripts voordat je wat ziet). Uitzonderingen daargelaten voor bijv jquery library / google analytics. Je attributeb op scripts hoeven ook niet meer :Y)

[ Voor 95% gewijzigd door gitaarwerk op 16-02-2014 10:18 ]

Ontwikkelaar van NPM library Gleamy


  • Kenny_026
  • Registratie: Juli 2007
  • Niet online
(overleden)
gitaarwerk schreef op zondag 16 februari 2014 @ 10:12:
probeer in plaats van document.ready eens window.load. Document ready geeft aan dat alle teksten en dergelijke zijn ingeladen. maar alle referenties naar andere bestanden nog niet.

Probeer dat eerst eens :) (ik neem aan dat je deze info via ajax inlaad dus?)

Ik volg je document niet helemaal, want je opent de php tags en vervoglens zet je er html(5) neer. Dit voorbeeld werkt daarom al niet echt. Heb je een live voorbeeld waar we kunnen kijken?


Overigens; Javascript bestanden kun je tegenwordig beter in de footer plaatsen (zo laadt de inhoud daadwerkelijk eerst, en hoef je niet te wachten voor de scripts voordat je wat ziet). Uitzonderingen daargelaten voor bijv jquery library / google analytics. Je attributeb op scripts hoeven ook niet meer :Y)
Bedankt voor je reaktie.

Ik heb window.load gebruikt maar dat maakt geen verschil. Die php tag mag je vergeten. Dat komt door het [code] systeem van tweakers.

De links heb ik je even in een PM gestuurd.

  • Cartman!
  • Registratie: April 2000
  • Niet online
Het inladen van de data is vermoedelijk een asynchrone actie terwijl jij deze synchroon probeert uit te voeren. Op het moment dat jij 'source' wilt gaan gebruiken is deze dus nog leeg en niet beschikbaar.

  • gitaarwerk
  • Registratie: Augustus 2001
  • Niet online

gitaarwerk

Plays piano,…

Ik heb je ene pm terug gestuurd :) Zorg wel dat je de oplossing nog even hier plaatst.

Zoals ik in de pm al zei. Je data wordt nu prima ingeladen, alleen je datadocument is nog niet goed. Haal je resultaat door een JSON checker heen en dan moet het goedkomen :)

Ontwikkelaar van NPM library Gleamy


  • Kenny_026
  • Registratie: Juli 2007
  • Niet online
(overleden)
gitaarwerk schreef op zondag 16 februari 2014 @ 11:23:
Ik heb je ene pm terug gestuurd :) Zorg wel dat je de oplossing nog even hier plaatst.

Zoals ik in de pm al zei. Je data wordt nu prima ingeladen, alleen je datadocument is nog niet goed. Haal je resultaat door een JSON checker heen en dan moet het goedkomen :)
Hartelijk dank voor je hulp. Het probleem is opgelost. Ik had html header tags in mijn code staan waarin ik de data inlas. Die zorgde ervoor dat de data niet overkwam. Eenmaal weggehaald kon ik de data goed inlezen.

Bedankt voor de tip van die json checker !

  • gitaarwerk
  • Registratie: Augustus 2001
  • Niet online

gitaarwerk

Plays piano,…

Ik had al het idee dat het daardoor kwam :) ... Soms is het lastig om die resultaten uit de browser te krijgen. Deze zet zelf wel eens hier en daar die dingen neer. Vandaar mijn suggestie om de headers te parsen (zodat de browser niet er zelf wat van bouwt). Json checker kan af en toe wonderen doen. We kijken te vaak over dit soort dingen heen ;-)

Succes !

Ontwikkelaar van NPM library Gleamy


  • Miyamoto
  • Registratie: Februari 2009
  • Laatst online: 20-11 21:15
Standaard debug-werk...

https://developer.mozilla.org/en-US/docs/Web/API/console.log
Chrome: F12
Firefox: Firebug
etc.

  • gitaarwerk
  • Registratie: Augustus 2001
  • Niet online

gitaarwerk

Plays piano,…

Niet echt hele nuttige reactie...

Ook de tools moet je leren en weten wat daar de valkuilen zijn. Als jij een JSON bestand pakt, en toevallig niet strict bezig bent, dan pleurt je browser er een hoop zooi in. Daarbij kan je zelfs met de console niet altijd alles zien. Om de TS zelf te laten onderzoeken is in dit geval een JSON checker de juiste aanwijzing om te zien waar zijn fout zit.

Mee eens dat de console vaak de beste tool is, maar begin je daar net mee, of nog mee beginnen kan het wel eens too much zijn. html + js + php + json... dat wordt ff zoeken als je 't niet weet...

Ontwikkelaar van NPM library Gleamy


  • Miyamoto
  • Registratie: Februari 2009
  • Laatst online: 20-11 21:15
gitaarwerk schreef op zondag 16 februari 2014 @ 13:55:
[...]


Niet echt hele nuttige reactie...

Mee eens dat de console vaak de beste tool is, maar begin je daar net mee, of nog mee beginnen kan het wel eens too much zijn. html + js + php + json... dat wordt ff zoeken als je 't niet weet...
Dus ga je debuggen. Of je dat nu met een echo, alert of of via een console doet maakt me niet uit. Ik reik hem een paar voorbeeldjes aan die het leven makkelijker kunnen maken. Hoe je het beste kunt debuggen mag ie zelf Googlen. Maar vooral als je talen gaat mixen (en nog beginnend bent) kan het érg handig zijn om "om de paar regels" je variabelen te controleren.

Een JSON checker is leuk, maar voorkomt niet dat TS de volgende keer een topic opent met hetzelfde probleem voor een XML bestand.
Pagina: 1