Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP returning JSON to JQUERY AJAX CALL

Tags:

json

jquery

php

I am still struggling to get my head around the ins and out of JQUERY, AJAX and PHP.

I can now call the PHP OK, process the form elements and send an email, but I am not handling the return to the AJAX. I am always getting the error: selector activated and when I try to list the supposed JSON returned, I get info, that is obviously wrong.

PHP with supposed JSON return

<?php  touch('phpTouch.txt'); // process email $email=1; if ($email) {     $value = array('return' => 1, 'msg1' => 'Message sent OK, we will be in touch ASAP'); } else {     $value = array('return' => 0, 'msg1' => 'Message Failed, please try later'); } $output = $json->encode($value); echo $output;  ?> 

Javascript and AJAX

function submitForm(evt) {     $('#msgid').html('<h1>Submitting Form (External Routine)</h1>');     if ($('#formEnquiry').valid() ) {         $("#msgid").append("<h1>(Outside Ready) VALIDATED send to PHP</h1>");             $.ajax({             url: "ContactFormProcess3.php",             type: "POST",             data: $('#formEnquiry').serialize(),             dataType: "json",             success: function (data) {                 alert("SUCCESS:");                 for(var key in data) {                     $('#msgid').append(key);                     $('#msgid').append('=' + data[key] + '<br />');                 }             },             error: function (data) {                 alert("ERROR: ");                 for(var key in data) {                     $('#msgid').append(key);                     $('#msgid').append('=' + data[key] + '<br />');                 }             }         });     } else {         $('#msgid').append('<h1>(Outside Ready) NOT VALIDATED</h1>');     }     evt.preventDefault(); }; 

Listing of supposed JSON data

readyState=4 setRequestHeader=function (a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this} getAllResponseHeaders=function (){return s===2?n:null} getResponseHeader=function (a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c} overrideMimeType=function (a){s||(d.mimeType=a);return this} etc etc  

If anyone can advise as to what stupid mistake I have made, then I would be most grateful.

like image 279
mcl Avatar asked Aug 15 '11 11:08

mcl


People also ask

How to return JSON data from php script using ajax jQuery?

Create ajaxfile. php file for handling AJAX request. Initialize the $return_arr Array with the user details (id, username, name, and email), and before return convert it to JSON format using the json_encode() function.

How to return JSON data to ajax call?

ajax({ url: "/home/GetCalculateAmortizationSchedule", type: "POST", dataType: "json", contentType: "application/json; charset=utf-8", success: function (result) { alert("success"); }, error: function (result) { alert("error"); } }); e. preventDefault(); });

How to return JSON response in ajax?

Approach: To solve this problem, we will first consider a JSON file named “capitals. json” and try to get this JSON data as a response using AJAX. Then we will create an HTML file “capitals. html” which contains a table which we will use to populate the data we are getting in response.


1 Answers

You can return json in PHP this way:

header('Content-Type: application/json'); echo json_encode(array('foo' => 'bar')); exit; 
like image 143
Arnaud Le Blanc Avatar answered Sep 20 '22 17:09

Arnaud Le Blanc