sonal Posted September 15, 2011 Share Posted September 15, 2011 I'm trying to add new records into database using ajax layer. I'm following the example given in the book. My php script works fine itself. But when I add ajax.js and add_client.js, the script does not give result. It seems like the script is not getting form values. I tried to print values after fields data, and the alert shows "This alert values shows "fname=null&lname=null&email=null" When I run the script, the php script goes into query failure part. But I can say, that php script is alright but it is working fine, when run without ajax parts. window.onload = init; function init() { var ajax = getXMLHttpRequestObject(); if(ajax) { if(document.getElementById('results')) { document.getElementById('client_form').onsubmit = function() { ajax.open('post', 'add_client_xml.php'); ajax.onreadystatechange = function() { handleResponse(ajax); } var fields = ['fname', 'lname', 'email']; for(var i = 0; i < fields.length; i++) { fields = fields + '=' + encodeURIComponent(document.getElementById(fields.value)); } var values = fields.join('&'); alert(values); This alert values shows "fname=null&lname=null&email=null" Link to comment Share on other sites More sharing options...
HartleySan Posted September 15, 2011 Share Posted September 15, 2011 I think your problem is here: fields = fields + '=' + encodeURIComponent(document.getElementById(fields.value)); Change the end to the following: encodeURIComponent(document.getElementById(fields).value) Basically, move one of the right parentheses. Note that the getElementById method needs the ID of an HTML element, and once you have that DOM object, you can get the value of it (if it's an input element) using the value property. Make sense? 1 Link to comment Share on other sites More sharing options...
sonal Posted September 15, 2011 Author Share Posted September 15, 2011 Hi, Thanks a lot.. that really makes sense. So nice of you.. Link to comment Share on other sites More sharing options...
Recommended Posts