Я все еще изо всех сил пытаюсь раздобыть голову над вставками JQuery, AJAX и PHP.
Теперь я могу называть PHP ОК, обрабатывать элементы формы и отправлять электронную почту, но я не обрабатываю возврат к AJAX. Я всегда получаю сообщение об error:
селектор активирован, и когда я пытаюсь перечислить предполагаемый JSON, я получаю информацию, это, очевидно, неправильно.
PHP с предполагаемым возвратом JSON
<?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 и 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(); };
Список предполагаемых данных JSON
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
Если кто-нибудь может посоветовать, какую глупую ошибку я сделал, тогда я был бы очень благодарен.
Вы можете вернуть json в PHP таким образом:
header('Content-Type: application/json'); echo json_encode(array('foo' => 'bar'));
без echo can not мы возвращаем оператор User, чтобы вернуть объект json и проанализировать его в методе успеха ajax.