2015-04-07 2 views
0

Целью кода, который я приложил к этой заметке, является 1) Соберите данные в форме. 2) Опубликовать в файл PHP, где собранная информация превращена в JSON 3) Записать информацию JSON в файл`` 4) Вернуть текущий JSON и записать его в идентификатор, называемый обратным в HTML ,Верните строку JSON из PHP

Все вышеперечисленные работы, кроме шага 4, и я могу найти ошибку. Я надеюсь, что некоторые из них посмотрят и скажут, где я сбился с пути. . Я знаю, что я могу записать данные JSON в файл, а затем прочитать все содержимое файла в jsonReadArea. Я также хотел бы иметь возможность из файла PHP вернуть текущий JSON в функцию успеха jQuery и отобразить его. Дальнейшее расследование прошлой ночью с помощью отладчика, похоже, я возвращаю объект, и к нему не обращаются правильно. В HTML вы найдете названный «возврат» и текст, который гласит: «HTML заменяется при успешной работе. И в функции post jQuery вы увидите, что и успех, и ошибка возвращаются, пытайтесь написать это. . «знает, как это сделать правильно в файле PHP отправить JSON обратно на пост JQuery в случае успеха, и заявление об ошибке в случае неудачи и запись в„The возвратной“область DIV JavaScript JQuery:

$("#Jform").submit(function()){ 
    data = $('#Jform').serialize(); 
    $.ajax({ 
     type: "POST", 
     dataType: "data", 
     url: "processJson.php", 
     data: data, 
     success: function (msg) { 
      displayRet(msg); 
     }, 
     error: function (msg) { 
      console.log(msg); 
      $("#the-return").html(msg); 
     } 
    }); 
    return false; 
}); 
// load() functions 
$('#jsonReadButton').click(function() { 
    $('#jsonReadArea').load('storage/jsonStorage.txt'); 
}); 

function displayRet(inc) { 
    $("#the-return").html(
     "Return String: Name: " + inc["name"] + 
     "<br />Email: " + inc["email"] + 
     "<br />Gender: " + inc["gender"] + 
     "<br /Temperature: " + inc["temperature"] + 
     "<br />terms " + inc["terms"] + 
     "<br />JSON: " + inc["json"] 
     ); 
alert("Form submitted successfully.\nReturned json: " + inc); 
} 

Теперь код PHP:

<?php 
/* 
* PHP Filters 
* http://www.w3schools.com/php/php_filter.asp 
* 
*/ 
$error = FALSE; 

$name = filter_input(INPUT_POST, "name", FILTER_SANITIZE_STRING); 
$email = filter_input(INPUT_POST, "email", FILTER_VALIDATE_EMAIL); 
$gender = filter_input(INPUT_POST, "gender", FILTER_SANITIZE_STRING); 
$temperature = filter_input(INPUT_POST, "temperature", FILTER_SANITIZE_STRING); 
$terms = filter_input(INPUT_POST, "terms", FILTER_SANITIZE_STRING); 

$tempArray = array("name" => $name, "email" => $email, "gender" => $gender, "temperature" => $temperature, "terms" => $terms); 
$jsonVal = json_encode($tempArray); 
// Open file and test operation 
$fileHandle = fopen('storage/jsonStorage.txt', "a"); 
if (!$fileHandle) { 
    $error = TRUE; 
} else { 
    fwrite($fileHandle, $jsonVal); 
    fwrite($fileHandle, "<br />\n"); 
} 

if ($error === FALSE) { 
    return $jsonVal; 
} else { 
    return "An error occured"; 
} 

ответ

0

вы возвращения значения (в никуда, так как вы не в функции) вместо print Ввод его в выходной поток.

Вы также забыли изменить заголовок Content-Type от дефолта text/html:

header("Content-Type: application/json"); 
+0

Где эта линии идти. header («Content-Type: application/json»); – user3000938

+0

OK нашел использование на этом. – user3000938

+0

Я не понимаю, как разместить JSON в мой HTML после возврата из файла PHP. Я хотел бы обрабатывать как успех, так и ошибку из файла PHP и вставлять возвращаемый код в 'code' // no errors if (empty ($ errors)) { header ('Content-Type: application/json «); echo $ jsonVal; // некоторые ошибки } else { $ msg = ''; foreach ($ errors as $ e) { $ msg. = "$ E
"; } echo $ msg; } – user3000938

0

Что вам нужно сделать, это просто эхо, как это:

эхо $ jsonVal;

А потом на яваскрипте стороны вы можете получить эту JSON с помощью функции JSON.parse

+0

Я искал JSON.parse на сайте developer.mozilla.org, но не вижу использования в моем контексте. Может написать немного кода для функции успеха. – user3000938

Смежные вопросы