从Jquery到PHP纠正JSON格式

时间:2015-03-24 17:44:02

标签: php jquery json

我正在开发一个编码PHP-AJAX-Jquery和JSON的项目,需要将一个包含三个输入字段的表单信息发送到一个php文件,该文件将存储数据库中三个字段的信息。 / p>

我的问题是我需要(因为项目规范)我使用Jquery-AJAX和JSON而且我认为我将格式错误的JSON字符串传递给PHP文件,这是应该处理的js电话:

$(document).ready(function(){
$('#ID_formulario').on('submit',function(e) {
     e.preventDefault();    
    var nombre = $('input#ID_nombre');
    var email = $('input#ID_email');

    if(validaForm(nombre, email)){

       var url = $(this).attr('action');
       var data = $(this).serializeArray();
       var type = $(this).attr('method');
       alert(data); 

        $.ajax({
               url:url,
               data:data,
               type:type,
               cache: false,
               contentType: "application/x-www-form-urlencoded",
               dataType: 'json',

               beforeSend: function () {
               $("#flash").show();
               $("#flash").fadeIn(400).html('<img src="imagen.gif" align="absmiddle"> <span class="loading">Realizando peticion...</span>');
               },

               error: function(){
               alert("error petición ajax");
               },

               success: function(datos){
               $('#result').empty().html(respuesta). fadeIn('slow').delay(5000).fadeOut();
               $('#ID_formulario')[0].reset();
               $('input#ID_nombre').focus();
               $("#flash").hide();      
               //$("#display").after(html);
               //$("#result").append(data);
               }

               });
    }
});
});

我的问题是:如何将有效JSON格式的三个字段的信息发送到php文件?是否有任何jquery功能有帮助?或者是serializeArray()足够吗?

  1. 使用成功是可以的:函数(数据)还是应该将其替换为.done(函数))?
  2. 提前感谢。

1 个答案:

答案 0 :(得分:1)

您不需要将任何内容作为JSON发送给PHP。只需使用类型发送它:POST并在PHP中读取它。然后将其作为JSON返回以在Javascript中读取。你刚刚在PHP中阅读了$ _POST。我相信你错了你的项目规范,你需要将PHP中的数据作为JSON返回。

这是我的一个项目:

$("document").ready(function(){
    $(".js-ajax-php-json").submit(function(){
    var data = {
        "action": "product"
    };
    data = $(this).serialize() + "&" + $.param(data);
    $.ajax({
        type: "POST",
        dataType: "json",
        url: "response.php",
        data: data,
        success: function(data) {
            $(".the-return").html(
                  // Read returned JSON. Exammple
                "<div class='data-row'><strong>TYPE</strong> " + data["title"]+ "</div>";
            );
        }
    });
    return false;
   });
});

在PHP中,您可以使用POST并读取数据。

response.php

if (is_ajax()) {
  if (isset($_POST["action"]) && !empty($_POST["action"])) { //Checks if action value exists
    $action = $_POST["action"];
    switch($action) { //Switch case for value of action
        case "product": sendValues(); 
            break;
    }
  }
}


// Function to check if the request is an AJAX request
function is_ajax() {
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}

// Do everything with $_POST's here
function sendValues(){
  $return = $_POST; 
  $return["title"] = 'Something';    
  $return["json"] = json_encode($return);
  echo json_encode($return); // Return JSON formatted data to Javascript.
}