【问题标题】:pass value to another php using ajax and javascript object..?使用 ajax 和 javascript 对象将值传递给另一个 php..?
【发布时间】:2017-05-08 10:21:33
【问题描述】:

当我尝试 json_decode json.stringify 数据时它返回 NULL 所以使用 **json_last_error 来了解错误并返回以下错误消息

语法错误,JSON 格式错误

任何人都可以验证我包含在 javascript 函数中的 ajax 代码并发现错误。

下面是脚本代码

 <script>
 function callphp(){
 var dataa = {};
 dataa.dateipone = jQuery("#dateInputone").val();
 dataa.dateiptwo = jQuery("#dateInputtwo").val(); 
 dataa.ino = jQuery("#ino").val();
 dataa.submit = "submit";
 alert("Hello")
 $.ajax({
    url : "six-cuf.php",
    type: 'POST',
    data :JSON.stringify(dataa),
    contentType : "application/json; charset=utf-8",
    success:function(data)
    {
        if(data){ 
          alert(data);   
          //console.log("Data from Server"+JSON.stringify(data));
        }
        else{
          console.log("Data is empty");
        } 
    },
    error: function(xhr) {
        alert('Error!  Status = ' + xhr.status + " Message = " + xhr.statusText);
        //console.log('Error!  Status = ' + xhr.status + " Message = " +  xhr.statusText);
    }
   });
 }

下面是6-cuf.php

  $data = json_decode($_POST['dataa']);
  print_r($data);

  switch (json_last_error()) {
   case JSON_ERROR_NONE:
         echo ' - No errors';
         break;
   case JSON_ERROR_DEPTH:
         echo ' - Maximum stack depth exceeded';
          break;
   case JSON_ERROR_STATE_MISMATCH:
         echo ' - Underflow or the modes mismatch';
          break;
   case JSON_ERROR_CTRL_CHAR:
         echo ' - Unexpected control character found';
          break;
   case JSON_ERROR_SYNTAX:
         echo ' - Syntax error, malformed JSON';
          break;
   case JSON_ERROR_UTF8:
         echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
          break;
   default:
         echo ' - Unknown error';
         break;
   }

   if(isset($_POST["dateipone"],$_POST["dateiptwo"],$_POST["ino"],$_POST["options"],$_POST["dateone"],$_POST["datetwo"],$_POST["submit"]))
{

    //php code
}

在 dateipone,dateiptwo 和 dateone,datetwo...其中一对的值为空。

【问题讨论】:

  • 你的$_POST中肯定没有$_POST['dataa']
  • @u_mulder...你是说 javascript 对象值没有发布到我的另一个 php 页面..??
  • print_r($_POST) 看看你有什么
  • @u_mulder..它只是像这样打印一个空数组Array()。你能给我提供一个如何传递这些值的例子吗?我是 ajax 新手,不太了解……它会有所帮助……

标签: javascript php jquery json ajax


【解决方案1】:

在传递给服务器之前,无需将任何内容编码为 json。您可以传递普通的 javascript 对象,其余的由浏览器完成:

var dataa = {};
dataa.dateipone = jQuery("#dateInputone").val();
dataa.dateiptwo = jQuery("#dateInputtwo").val(); 
dataa.ino = jQuery("#ino").val();
dataa.submit = "submit";
$.ajax({
    url : "six-cuf.php",
    type: 'POST',
    data: dataa,
    // no content-type here!
    success:function(data) {

    }
});

在服务器端照常检查$_POST 数组:

print_r($_POST);
// you will have keys: `dateipone`, `dateiptwo`, `ino` and `submit` in it

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多