Scope Of JSON Object In IE Versus Firefox
Aug 5, 2007I'm a newbie to JSON and have been trying to parse some data and send it to a function that writes some html. I can do this in IE, but I can't get it to work in firefox. Code:
View 9 RepliesI'm a newbie to JSON and have been trying to parse some data and send it to a function that writes some html. I can do this in IE, but I can't get it to work in firefox. Code:
View 9 RepliesThe JSON object I am using is as below . this object is returned after an AJAX call
{"application" :[
{optionValue:"101", optionDisplay: "estmt"},
{optionValue:"11", optionDisplay: "Arif"},
{optionValue:"12", optionDisplay: "JC"}
]}
In the JS i am using the below code
data = ajaxRequest.responseText ;
var jsonOBJ = eval('(' + data + ')');
len = jsonOBJ.application.length ;
key = jsonOBJ.application[i].optionValue ;
value = jsonOBJ.application[i].optionDisplay ;
Internet Explorer is able to process the above code , but while trying
from Firefox , I am getting the below error message
jsonOBJ has no properties
[Break on this error] len = jsonOBJ.application.length ;
So I have a function that is going to get a URL, and have to retrieve json data from that URL. The URL _might_ be same-domain, and might be cross-domain. If it's cross-domain, of course I want to do jsonp complete with the script-tag-to-load and such, but if it's same domain of course I want to do just xhr for efficiency. So I _could_ write all my own logic for this. Write logic to see if the url is cross-domain or not, and then make entirely different $.ajax() calls depending.
(I think I need to use $.ajax() rather than $.getJSON() because I need a callback on failure, not just success). If it is cross-domain, use dataType:jsonp, and make sure to supply a &callback. If it's not cross-domain, dataType:json, and don't even bother supplying a callback. But I'm having trouble figuring out if this is true, or how. What's the easiest way to get $.ajax() to make a dataType:json request if it's same-domain, but a dataType:jsonp request if it's cross-domain?
I have an object with a single Method to load content from a xml file. The problem is... how do I add a property to the object to store the data loaded?? I tryed adding a simple Array inside the object, but didn't work.
[Code]...
I am getting differences in the rendering between Safari and Firefox. I've tried to come up with a JS script to sort them out but I am not having much luck. Safari always produces "red", the same as FF or nothing at all (where I substitute 'vendor' for 'userAgent', etc). Here's my little test program to isolate the basic code:
<link href="testcss/ff.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" >
window.onload=detectbrowser;
function detectbrowser()
{
var browser_type=navigator.userAgent;
alert("the user agent is:" + browser_type);
var browser_type=navigator.userAgent.indexOf("AppleWebKit");
if(browser_type != -1)
{
document.write('<link rel="stylesheet" href="testcss/saf.css" type="text/css" >');
}else{
alert("no useragent verified");
}}
</script>
<!--[if lte IE 7]>
<link type="text/css" rel="stylesheet" href="testcss/ie.css" />
<![endif]-->
<title>Untitled Document</title>
</head>
<body>
<div id="testbox"></div><br />
<ul>
<li>Red is for Firefox</li>
<li>Green is for Internet Explorer</li>
<li>Yellow is for Safari</li>
</ul>
</body>
</html>
What's even odder, Safari won't even execute the ....else part of the if statement when I'm trying to detect using 'userAgent'.
I have used the Nivo Slider on my website: [URL]. It displays just fine on Firefox but not on IE9, it displays it as if all the images are stacked on top of one another going down the page, but the images don't actually display. Only when I turned on compatibility view on IE9 that the page works properly. I have tried placing the javascript:
Code:
<script src="[URL]" type="text/javascript"></script>
<script src="[URL]" type="text/javascript"></script>
<script src="[URL]" type="text/javascript"></script>
Between the <head> tags but then it doesn't load. It only loads if I add them into the page. Above my slider:
Code:
<div id="slider" style="width: 400px ! important; height: 300px ! important;"><img src="[URL]frontpage1.jpg" border="0" alt="frontpage1" /> <img src="[URL]frontpage2.JPG" border="0" alt="frontpage2" /> <img src="[URL]frontpage3.jpg" border="0" alt="frontpage3" /> <img src="[URL]frontpage4.jpg" border="0" alt="frontpage4" /> <img src="[URL]frontpage5.jpg" border="0" alt="frontpage5" /><img src="[URL]frontpage6.jpg" border="0" alt="frontpage6" /><img src="[URL]frontpage7.jpg" border="0" alt="frontpage7" /><img src="[URL]frontpage8.jpg" border="0" alt="frontpage8" /><img src="[URL]frontpage9.jpg" border="0" alt="frontpage9" /><img src="[URL]frontpage10.jpg" border="0" alt="frontpage10" /></div>
I had a need for a two dimentional array. Looking for this solution, I
ran accross a statement than all Javascipt arrays were arrays of
objects. So I created a function prototype, at least thats what I was
calling it:
function objRow(vartype, varaddr1, varaddr2)
{
this.type = vartype;
this.addr1 =varaddr1;
this.addr2 =varaddr2;
}
Next I did:
var myobject=new objRow("1", "1234 Main St.", "Apt 101");
At this point I was able to see myobject.addr1 or any other variable in
the object instance.
Now I added this object to a table.
var aryTestTable= new Array();
aryTestTable[0]= myobject;
At this point I could see
aryTestTable[0].addr1
Next I tried an additional object
myobject=new objRow("1", "1234 Main St.", "Apt 101"); //with
different data
And added it to the table
aryTestTable[1]= myobject;
Where I could see:
aryTestTable[1].addr2 or any other variable.
so far so good. Then I started the actual application code where I was
reading a database table and creating the objects and adding them to
the table. This was in a for loop wherein the myobject=new objRow("1",
"1234 Main St.", "Apt 101"); was instantiated.
After the for loop was finished, I could not access the data in the
table - undefined.
So my questions are: Have the my object instances popped off the stack?
and What is the alternative way to implement this table of rows of
values.
I will do my best to explain this one and sorry if the title isn't that great. I am trying to write a javascript object and it is my first time, so it isn't that great and of course I have trouble.The object is suppose to populate a dropdown (popMake()) and then add an onchange event (checkValue()) to it. It seems to do this fine but when the select box is changed, I no longer have access to object, it's parameters, etc. In checkValue I don't have access to this.currentMake which was just set or anything (already said that).I believe it has something to do with scope (possibly closure, but I didn't see how it would fit her). So how can I do something like this and still have access to the object after the click?Code below:Code:
window.onload = function() {
var mm = new makeModel();
mm.popMake();
[code]....
I'm having trouble getting the following code to work properly. Every time I try to access the private testing variable from the priveleged MyMethod it gives an error. Says it can't find testing and that it has no properties so I can't run a push() command on it.
function MyClass()
{
var testing = new Array();
// define the method
function MyMethod()
{
this.testing.push("hello");
}
// make the method priveledged
this.MyMethod = MyMethod;
}
// a test function it ensure the variables declared here are isolated
function Start()
{
var myClass = new MyClass();
myClass.MyMethod();
document.write("[" + myClass.testing + "]");
}
Start();
i'm having a slight problem understand how to use this.myVar in an object. And I use prototype.
[Code]...
Does anyone know how I can use this.myvar within the function. I have tried binding and bindAsEventListener.But nothing I've done has been able to get the right value!
I'm a little puzzled over the possibility of accessing an array. I've declared the previd id - in the proxy.invoke call which works just fine (we have already implemented an .each loop which also works. My problem is this - after accessing the proxy.invoke function, the previd is populated correctly with push but after the call, we cannot seem to access the previd array to make a join to a string. Here's the basics of the code.
var previd = [];
proxy.invoke("validdateIDCard", p_caregiverid,
function(validaterID) {
var valcard = validateID;
previd.push(valcard);
}, onPageError);
var finalvalue = previd.join("|"); <-- this is where the problem lies - cannot seem to read the variable...
I created this code for a sliding panel and it works well. But I'm struggling to take the object oSidebar out of the global scope. I would prefer that it were a property of the clicked event object. That is, I want to be able to use 'this.oSidebar' within the click event. I've posted the whole page here along with the click image.
[Code]...
jquery code:
$.ajax({
url: "validate_livestock_form/index/",
type: 'POST',
dataType: "json",
data: form_data,
success: function(data) {
alert(data);
[Code]...
php page is echoing out:{"species":"Please select a species!"} I double checked the response from the php and firebug shows the same. On success alert is not alerting the JSON data instead, I'm receiving [object Object]. Why is that and how do what should I do to fix this?
Can assign a new function to a built-in object in Firefox:
But IE and Opera don't have a MouseEvent or HTMLElement that can be set up in the same way. Can you do this in IE or Opera, or just Firefox, and maybe Webkit?
I have an array of HTML tables created in PHP which I send as a XMLHttpResponse encoded with JSON. Is there was a way I could access the table elements which are now in the JSON Object?
Relevant bits:
PHP code:
$verificationListsResponse = array("classeList" => "$classeList", "workCodeList" => "$workCodeList");
$searchResponse['verificationLists'] = $verificationListsResponse;
print json_encode($searchResponse);
[Code]....
Does anyone know the function for adding more items to an already declared JSON object?
Assuming you have something like code...
i have this user interface for a client that i have to mod (The UI is a link crawling monitoring for his website), the present one uses php database connection for every single action that is done on the UI (select link to be monitored, show link stats etc...) what we want to do is to have the links retrived from the database stored in a json object while the client is playing with the links on the UI (making all kind of editing actions) and then when he want to store all the modifications/actions he has made then the data stored in the object are sent back to the database...
One of my coworker's (he's a java and O.O. programming specialist) objection to that is that there are too many links (data) to put in a simple Json object... and it will be then difficult to store all the actions made on the json object because there will be too many info/data for it to handle etc...
I have such problem when I post my object from client to server (php).
The object should be like so:
Code:
I converti it:
Code:
And send it though jquery and ajax:
property val is the object...
Then on side of server I gota string $_POST["val"]:
Code:
I try to convert it:
Code:
I am trying to convert a very simple JS object as follows to JSON, cant seem to find the solution [code]...
View 1 Replies View RelatedIhave a Json Object n wanna select one row based on id and name
[Code]...
In addition to fetching JSON you might want to POST it back to the server, but there is no postJSON method. You cannot use the generic ajax method, either. What is missing is the complement of "eval" to turn a JavaScript object in to JSON. The JSON.stringify function from www.json.org (see json2.js in JavaScript section) does the trick, but it would be nice if jQuery incorporated that out of the box, to save some hunting time.
Using the jquery ajax method to set the "type" to "json" and the "content-type" to "application/json" send and recieve JSON, but you must use JSON.stringify to convert your outgoing object to JSON. P.S.. a lot of forgiving parsers have resulted in a lot of articles on JSON being wrong. would I like to mention that here. Property names are JSON strings. JSON strings have double quotes. Therefore, property names have to be surrounded with double quotes. Single quotes are not JSON strings and not legal (JSON is not JavaScript).
[Code]..
Supposed that I have a json object but I don't know anything about its keys and values. Is there anyway to print out all the key and value pairs in that object?
View 5 Replies View RelatedI have a PHP file that pulls down data from a MySQL database, filtered based on a tag ID. That data is then returned using PHP's json_encode function to the client where it is translated back using JSON's JSON.parse function. Seems to work absolutely great! Except... it seems to reorder my object completely by itself...
Here's an example:
When my query ends with ORDER BY posts.postid ASC, I get the following JSON:
Code:
{"type":"tags_posts","tagname":"json sort test","posts":{"100":{"reltags":{"201":"json sort test"},"subject":"JSON Sort Test 1","message":"JSON Sort Test 1","posteddatetime":"2011-01-15 07:25:34","authorid":"1","authorname":"azcn2503","commentscount":0,"postedip":"193.132.232.210","postedipgeo":"GB"},"101":{"reltags":{"202":"json sort
[Code]....
As you can see, it has been reordered somehow and looks exactly the same as when it is ordered ASC.
Is there something in the JSON file that I just can't see? I've been coding for a while now and could be going blind...
I am passing some equity option contract data from my PHP processing page to the UI. I am attempting to use the JSON response to populate a matrix. Along the far right column are the strike prices (22, 23, 24, 25, 26, etc) and along the top row are the expiration dates (Jun 2008, Jul 2008, Aug 2008, etc.). My struggle is how to match the option data to the correct strike and expiration date. An example of the JSON response is below:
Code:
{"calls":
[
{"row_id":119,"type":"call","expiration":"JUN 20, 2009","t1":22,"strike":"25.00","symbol":"JSAFE"},
{"row_id":127,"type":"call","expiration":"JUN 20, 2009","t1":22,"strike":"26.00","symbol":"JSAFI"},
[code]....
Would be a JSON returned object that has all the option prices for all the expirations as properties.
Im having difficulty getting my form contents to send to my php page using ajax, jquery and json. The results just doesnt want to show.
My javascript, where I create the JSON object and try to send it through to the php page:
var JSONobj;
var JSONstr;
function createJSON(){
[code]....
What should happen is the firstname should be alerted. But the alert box doesnt even show and I find no errors using firebug...
I receive a response from an ajax call and I need to load the response into a Json structure like so:
Code:
var data = { "products": [
{" longitude": 151.6838460, "latitude": -33.0086640}
,
{"longitude": 151.4008410, "latitude": -33.4728590}
[Code]....