Invalid json response from Server for the following json data
Invalid json response from Server for the following json data
Hello Every,
I am Satya trying to get data from mysql, the values are dynamically sent to mysql server by encoding them in where clause, now I got the following k ind of data that is being reported as invalid json format, but I have searched mny foruma where they have same data working for datasets, is there anyone to suggest me any solution/idea?
{"sEcho":0,"iTotalRecords":0,"iTotalDisplayRecords":0,"aaData":[["Bank Deposits","-90853.0000","98.0000","0.00000000","-90853.0000"],["Classes","238458.6400","1398.0000","792.28000000","282140.4590"],["Diving Equipment","928994.2600","12495.0000","534050.05400000","541323.8660"],["Gift Cards","45966.6200","268.0000","0.00000000","48727.5000"],["Miscellaneous","171459.4900","13867.0000","58392.81160000","539491.8784"],["Pay Outs","-19631.0600","196.0000","0.13000000","-17849.6564"],["Rentals","39554.8300","852.0000","60.11000000","39180.2530"],["Servicing","131207.8100","11559.0000","43991.04760000","132605.8424"],["Student Materials","403.0900","417.0000","0.00000000","403.0900"],["Travel","464629.3700","816.0000","260.00000000","819789.4900"]]}
Thanking you
Satya Achanta
Answers
Your json reply data looks like this:
"aaData":[ [ ] ]
and I believe it should look like this:"aaData":[ { } ]
I tried a lot to get in that format, but I am unable to do, do you have any suggestion about getting aaData in that format. @ignignokt
It would help if you showed your PHP code for building the reply. Here is how you create the two different types though.
What you have:
Results in: [["column1value","column2value"]]
What you need to have:
Results in: [{"column1key":"column1value","column2key":"column2value"}]
Here is my php code
<?php
include 'dataLogin.php';
include 'dbcon.php';
error_reporting ( E_ALL ^ E_NOTICE );
if (isset ( $_POST ['companyid'] ))
{
}
<?php > ?>I am sorry I am just wondering how to format that code .
I'm not entirely sure what you are trying to do, and it is hard to read your code in a big paragraph block. But your
mysqli_fetch_array
should probably just look like this instead of yourfor($i = 0
loop and stuff.I can send you the email if it is okay for you, I am new to this website so I am feeling consufed about formatting....
I have created fiddle without any functionality for that code here, can you please take a look at this http://jsfiddle.net/satya_achanta/acqmvw06/
I don't see the purpose of the for loop in the while loop. Try replacing line 37-46 in your fiddle with the while loop I put in my previous comment.
yes I did, when I removed the for loop then it is like below
if ($data_sql) {
$row = array ();
while ( $aRow = mysqli_fetch_array ( $data_sql ) ) {
$output ['aaData'] [] = $aRow;
}
echo json_encode($output);
}
the data is of form
{"sEcho":0,"iTotalRecords":0,"iTotalDisplayRecords":0,"aaData":[{"0":"Bank Deposits","profitcenters":"bankdeposits","1":"-90853.0000","grossmargin:"-90853.0000"........}.here what is happening is the data is getting repeated either I have to get "0":"bankdeposits" or "profitcenters":"bankdeposits" but I am getting both in the same array
Also change line 32 in the fiddle to
"aaData" => array()
The same thing is happening, getting the data repeated......we need for loop inside it otherwise on what basis I can search the elements, I store the elements on the names of arrays that are equal to column names in the database, if we dont have for loop it is mistake I believe. If I am wrong correct me.
Change mysqli_fetch_array to mysqli_fetch_assoc
not working man......I don't know where the error occurs, it seems everywhere it is good but not working....
The issue of duplicate data is because you are using fetch_array instead of fetch_assoc. If you are still getting duplicate data after changing that I don't know what to tell you.
I did that..okay I will figure it out and once I got that I will post the solution.
Okay I got in the format you suggested me , now data without repetitions and it is in the format of {"aaData":[{"profitcenters":"bankdeposits","Grosssales":"12345.67"........}]}, but still getting invalid json error...
If you are getting the invalid JSON error, there is something being returned that is making the data invalid JSON. That might be an error message or something else. This tech note might be of use to determine what it is. Otherwise we would need either a debugger trace or a link to the page.
Allan
Hello Allan, here is my debugger code "ewayed" (without double quotes), I am trying to get the values from the database and displaying in the tables on the button click, I tried using Ajax alone but it doesn't seems like good way for me, so I started using server side scripting. If you have any suggestion in your mind please let me know.
The server shows that no data was returned by the server:
That is not valid JSON, hence the error.
Allan
Hello Allan, but when I alert the data that came from another page, there is some data from the other page, but I don't know why it is not getting displayed in the datatable, where did you find the resposne text is empty, please let me know, by the way this is the response text what I got from the previous page, I have found this in developer tools of google chrome
{"aaData":[{"profitcenter":"Bank Deposits","grosssales":"-90853.0000","qty":"98.0000","COGS":"0.00000000","grossmargin":"-90853.0000"},{"profitcenter":"Classes","grosssales":"238458.6400","qty":"1398.0000","COGS":"792.28000000","grossmargin":"282140.4590"},{"profitcenter":"Diving Equipment","grosssales":"928994.2600","qty":"12495.0000","COGS":"534050.05400000","grossmargin":"541323.8660"},{"profitcenter":"Gift Cards","grosssales":"45966.6200","qty":"268.0000","COGS":"0.00000000","grossmargin":"48727.5000"},{"profitcenter":"Miscellaneous","grosssales":"171459.4900","qty":"13867.0000","COGS":"58392.81160000","grossmargin":"539491.8784"},{"profitcenter":"Pay Outs","grosssales":"-19631.0600","qty":"196.0000","COGS":"0.13000000","grossmargin":"-17849.6564"},{"profitcenter":"Rentals","grosssales":"39554.8300","qty":"852.0000","COGS":"60.11000000","grossmargin":"39180.2530"},{"profitcenter":"Servicing","grosssales":"131207.8100","qty":"11559.0000","COGS":"43991.04760000","grossmargin":"132605.8424"},{"profitcenter":"Student Materials","grosssales":"403.0900","qty":"417.0000","COGS":"0.00000000","grossmargin":"403.0900"},{"profitcenter":"Travel","grosssales":"464629.3700","qty":"816.0000","COGS":"260.00000000","grossmargin":"819789.4900"}]}
http://debug.datatables.net/ewayed
Click the 'Tables' tab and then 'Server interaction'.
You can also use 'Full table state' and search for the responseText which is a directly copy of the XHR object from jQuery. It contains an empty string from a 200 OK response.
Allan
Hello Allan, I tried to fix that, but it seems everything is good for me, I am sending output data in php using json_encode but data gets into the page but not into the datatable, as I am naive to this functionality I am unable to find where I went wrong, can you suggest me where I went wrong by looking at this fiddle, this is just code without any functionality, I am unable to format the code in this comment box so I created static fiddle http://jsfiddle.net/satya_achanta/acqmvw06/, this is the fiddle for the php page where I send the output.
Hello @Allan, I have some weird problem, I tired in the way you suggested me in the morning, to know how it works, I used static values in the where clause of sql query, the debugger code for that is "examag" (without quotes) and next I have sent few values to mysql query using ajax from another page, now it doesn't work the debugger code for that is "
ayirok", but for me the data returned is in both format in both the cases, I am not sure where the problem occurs, if you have any idea in your mind please suggest me.
Look at "Server interaction" from your debugger ref. ayirok.
Hello Tangerine, I looked at that, I am unable to read that and inturn I am getting data to the page but why it doesn't comes to datatables, if I use static values it works,
Why can't you read it?
It says you have a bunch of undefined stuff in datasample.php.
I mean I am unable to know why it is, in fact those are the variables that are coming using Ajax request from the previous page, even the required page receives their values uing Ajax but not reading them, if I again check them by sending back the received values through json_enocde they are getting displayed.
We don't know what is in your script so can't say what is wrong with it. Perhaps you are trying to read from _POST but the request being sent is _GET, but really that is just a guess without having all the information needed to be able to debug it.
Allan
Hello Allan, You are correct, I have sent request through post and I am receiving through get, I have observed my console, when I sent ajax request it is post, but when I get data it is get, here is the debugger code for that updated script "evadah"