Note, in my example url: "json-data.wct"  it is my equivalent to your
"PHP" for our web server.  In this case, json-data-wct, is simply a
dump of:

MyJSON({"items": [
   { id: "111", organization: "open2space",
     start: new Date("2007-09-24 20:13:00"),
     end: new Date("2007-09-24 16:13:00"),
     duration: "2", work_type: "Programming",
     project: "simpleTracker",
     description: "Test 8" },
   { id: "112", organization: "open2space",
     start: new Date("2007-09-24 19:14:00"),
     end: new Date("2007-09-24 22:14:00"), duration: "3",
     work_type: "Programming", project: "simpleTracker",
     description: "Test 9" },
   { id: "113", organization: "open2space",
     start: new Date("2007-09-24 19:14:00"),
     end: new Date("2007-09-24 22:14:00"),
     duration: "3",
     work_type: "Programming",
     project: "simpleTracker",
     description: "Test 9" },
   { id: "114",
     organization: "open2space",
     start: new Date("2007-09-24 18:14:00"),
     end: new Date("2007-09-24 22:14:00"),
     duration: "4",
     work_type: "Programming",
     project: "simpleTracker",
     description: "Tst 10" }
]});

jsonp (note the p) works by you creating a function (in this case
MyJSON) that will handle the data.  The response is essentially a
"javascript" that jQuery Ajax will "eval-uate".  The javascript is a
callback to this function with the parameter being your actual JSON
data.

--
HLS

On Sep 25, 9:20 am, Pops <[EMAIL PROTECTED]> wrote:
> I did the following to make it work:
>
> I wrapped the data as such:
>
> MyJSON({
> items: [
>  your items here
> ]
>
> });
>
> then I created a function:
>
> Function MyJSON(data)
> {
>   var json = data.items;
>   var tbl = "<table border='1' class=\"tblTimeCards\">";
>   tbl += "<thead><tr>";
>   tbl += "<th>Id</th>";
>   tbl += "<th>Client</th>";
>   tbl += "<th>Project</th>";
>   tbl += "<th>Start</th>";
>   tbl += "<th>End</th>";
>   tbl += "<th>Duration</th>";
>   tbl += "<th>Description</th>";
>   tbl += "</tr></thead>";
>   tbl += "<tbody>";
>   for (var x = 0; x < json.length; x++) {
>     tbl += "<tr>";
>     tbl += "<td class=\"tcID\">" + json[x].id + "</td>";
>     tbl += "<td class=\"tcClient\">" + json[x].organization + "</td>";
>     tbl += "<td class=\"tcProject\">" + json[x].project + "</td>";
>     tbl += "<td class=\"tcStart\">" + json[x].start + "</td>";
>     tbl += "<td class=\"tcEnd\">" + json[x].end + "</td>";
>     tbl += "<td class=\"tcDuration\">" + json[x].duration + "</td>";
>     tbl += "<td class=\"tcDesc\">" + json[x].description + "</td>";
>     tbl += "</tr>";
>   }
>   tbl += "<tbody>";
>   $(".tcList").html(tbl);
>
> }
>
> then I changed the ajax call to this:
>
>    var xhr = $.ajax({
>        type: "get",
>        url: "json-data.wct",
>        dataType: "jsonp",
>        error: function (a,b,c) {
>          alert("Error retrieving recent records\n\nstatus: " +
> a.status +"\n\n" + a.responseText);
>        }
>      });
>
> Note the "jsonp".
>
> This worked.
>
> --
> HLS
>
> On Sep 25, 1:38 am, sgrover <[EMAIL PROTECTED]> wrote:
>
> > I'm dong an Ajax call to retrieve some JSON and build a table from this.
> >    (code posted below.)  The Ajax call is never firing the "success"
> > function, but if I include an "error" function, that is called.  Yet in
> > that error function, checking the status code shows a "200" and the
> > response text is my JSON code.  The page in question loads just fine on
> > it's own and the JSON looks fine.  So I'm not sure why the error
> > condition is being called.  I'm sure it's something stupid, but I can't
> > see it.  Any tips?  I've tried both jQuery 1.1.4 and 1.2.1.
>
> > Shawn
>
> > CODE:
>
> >    $.ajax({
> >      type: "get",
> >      url: "xhr/tc_recent.php",
> >      dataType: "json",
> >      success: function (json) {
> >        alert(json.length);
> >        var tbl = "<table class=\"tblTimeCards\">";
> >        tbl += "<thead><tr>";
> >        tbl += "<th>Id</th>";
> >        tbl += "<th>Client</th>";
> >        tbl += "<th>Project</th>";
> >        tbl += "<th>Start</th>";
> >        tbl += "<th>End</th>";
> >        tbl += "<th>Duration</th>";
> >        tbl += "<th>Description</th>";
> >        tbl += "</tr></thead>";
> >        tbl += "<tbody>";
> >        for (var x = 0; x < json.length; x++) {
> >          tbl += "<tr>";
> >          tbl += "<td class=\"tcID\">" + json[x].id + "</td>";
> >          tbl += "<td class=\"tcClient\">" + json[x].organization + "</td>";
> >          tbl += "<td class=\"tcProject\">" + json[x].project + "</td>";
> >          tbl += "<td class=\"tcStart\">" + json[x].start + "</td>";
> >          tbl += "<td class=\"tcEnd\">" + json[x].end + "</td>";
> >          tbl += "<td class=\"tcDuration\">" + json[x].duration + "</td>";
> >          tbl += "<td class=\"tcDesc\">" + json[x].description + "</td>";
> >          tbl += "</tr>";
> >        }
> >        tbl += "<tbody>";
> >        $(".tcList").html(tbl);
> >      },
> >      error: function (a,b,c) {
> >        alert("Error retrieving recent records\n\nstatus: " + a.status +
> > "\n\n" + a.responseText);
> >      }
> >    });
>
> > SAMPLE OF RETRIEVED JSON
> > [
> >    { id: "111", organization: "open2space", start: new Date("2007-09-24
> > 20:13:00"), end: new Date("2007-09-24 16:13:00"), duration: "2",
> > work_type: "Programming", project: "simpleTracker", description: "Test
> > 8" },
> >    { id: "112", organization: "open2space", start: new Date("2007-09-24
> > 19:14:00"), end: new Date("2007-09-24 22:14:00"), duration: "3",
> > work_type: "Programming", project: "simpleTracker", description: "Test
> > 9" },
> >    { id: "113", organization: "open2space", start: new Date("2007-09-24
> > 19:14:00"), end: new Date("2007-09-24 22:14:00"), duration: "3",
> > work_type: "Programming", project: "simpleTracker", description: "Test
> > 9" },
> >    { id: "114", organization: "open2space", start: new Date("2007-09-24
> > 18:14:00"), end: new Date("2007-09-24 22:14:00"), duration: "4",
> > work_type: "Programming", project: "simpleTracker", description: "Tst 10" }
> > ]

Reply via email to