将javascript数组传递给php

将javascript数组传递给php,javascript,php,Javascript,Php,我正在尝试学习如何将数组传递给php,警报('success')确实会显示,但我认为该值不会传递给php,因为php中的警报不会显示 <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script> function submit(){

我正在尝试学习如何将数组传递给php,警报('success')确实会显示,但我认为该值不会传递给php,因为php中的警报不会显示

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script>
      function submit(){
        var TableData = {"table1":"sample1","table2":"sample2","table3":"sample3"};
        var Data = JSON.stringify(TableData);
        $.ajax({
          type: "POST",
          url: "getInfo.php",
          data: {pTableData : Data},
          success: function(){
            alert('Success');
          }//success
        });
    }//submit();
    </script>
  </head>
  <body>
    <div>
      <button type = "button" onclick = "submit();">SUBMIT</button>
    </div>
  </body>
</html>

函数提交(){
var TableData={“table1”:“sample1”,“table2”:“sample2”,“table3”:“sample3”};
var Data=JSON.stringify(TableData);
$.ajax({
类型:“POST”,
url:“getInfo.php”,
数据:{pTableData:data},
成功:函数(){
警惕(“成功”);
}//成功
});
}//提交();
提交
我的php代码:

<?php
  $table = json_decode($_POST['pTableData']);
  $msg = $table['table1'];
  echo '<script>alert("';
  echo $msg;
  echo '");</script>';
?>


提前非常感谢

您需要将响应检索到success函数中。同样在php中,您必须传递
$table=json\u decode($\u POST['pTableData'],true)否则它将作为对象而不是数组返回

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script>
      function submit(){
        var TableData = {"table1":"sample1","table2":"sample2","table3":"sample3"};
        var Data = JSON.stringify(TableData);
        $.ajax({
          type: "POST",
          url: "get_info.php",
          data: {pTableData : Data},
          success: function(result){ //retrieve data
            alert('Success');
            alert(result); //alert it
          }//success
        });
    }//submit();
    </script>
  </head>
  <body>
    <div>
      <button type = "button" onClick = "submit();">SUBMIT</button>
    </div>
  </body>
</html>

函数提交(){
var TableData={“table1”:“sample1”,“table2”:“sample2”,“table3”:“sample3”};
var Data=JSON.stringify(TableData);
$.ajax({
类型:“POST”,
url:“get_info.php”,
数据:{pTableData:data},
成功:函数(结果){//检索数据
警惕(“成功”);
提醒(结果);//提醒它
}//成功
});
}//提交();
提交
PHP代码:

<?php
  $table = json_decode($_POST['pTableData'],true);
  $msg = $table['table1'];  
  echo $msg;  
?>

您需要将响应检索到success函数中。同样在php中,您必须传递
$table=json\u decode($\u POST['pTableData'],true)否则它将作为对象而不是数组返回

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script>
      function submit(){
        var TableData = {"table1":"sample1","table2":"sample2","table3":"sample3"};
        var Data = JSON.stringify(TableData);
        $.ajax({
          type: "POST",
          url: "get_info.php",
          data: {pTableData : Data},
          success: function(result){ //retrieve data
            alert('Success');
            alert(result); //alert it
          }//success
        });
    }//submit();
    </script>
  </head>
  <body>
    <div>
      <button type = "button" onClick = "submit();">SUBMIT</button>
    </div>
  </body>
</html>

函数提交(){
var TableData={“table1”:“sample1”,“table2”:“sample2”,“table3”:“sample3”};
var Data=JSON.stringify(TableData);
$.ajax({
类型:“POST”,
url:“get_info.php”,
数据:{pTableData:data},
成功:函数(结果){//检索数据
警惕(“成功”);
提醒(结果);//提醒它
}//成功
});
}//提交();
提交
PHP代码:

<?php
  $table = json_decode($_POST['pTableData'],true);
  $msg = $table['table1'];  
  echo $msg;  
?>

据我所知,您希望您的PHP脚本(在后端)向您显示警报。因此,这是不可能的,因为
alert()
-是一种JavaScript方法,也就是说,应该在用户的浏览器中对其进行评估,以查看由PHP脚本引起的警报。此外,不要混淆
后端
前端
的定义。正如我已经说过的,PHP-是一种后端语言,因此它不能直接用于与最终用户交互。有JavaScript和HTML语言(前端)可以满足这种需求

尝试将JavaScript代码修改为以下内容:

$.ajax({
    type: "POST",
    url: "getInfo.php",
    data: {pTableData : Data},
    dataType: "html",
    success: function(data){
        $('body').append(data);
    } //now it will insert the code your PHP script produced on a back-end 
      //onto the page's body, so, you are gonna see an alert only if the PHP 
      //have actually echoed a correct HTML back to the JavaScript on that context
});

您可能还对
console.log()
之类的函数感兴趣(它不是JavaScript标准-它的实现取决于您要使用的浏览器;它可以在其中工作。顺便说一下,is不应在部署的项目中使用)。因此,您可以将
success
方法修改为类似
console.log(数据)的内容。ajax请求完成后,打开开发者控制台(在大多数WebKit浏览器中默认为Ctrl+Shift+C),看看会发生什么。

好吧,正如我所理解的,您希望您的PHP脚本(在后端)向您显示警报。因此,这是不可能的,因为
alert()
-是一种JavaScript方法,也就是说,应该在用户的浏览器中对其进行评估,以查看由PHP脚本引起的警报。此外,不要混淆
后端
前端
的定义。正如我已经说过的,PHP-是一种后端语言,因此它不能直接用于与最终用户交互。有JavaScript和HTML语言(前端)可以满足这种需求

尝试将JavaScript代码修改为以下内容:

$.ajax({
    type: "POST",
    url: "getInfo.php",
    data: {pTableData : Data},
    dataType: "html",
    success: function(data){
        $('body').append(data);
    } //now it will insert the code your PHP script produced on a back-end 
      //onto the page's body, so, you are gonna see an alert only if the PHP 
      //have actually echoed a correct HTML back to the JavaScript on that context
});

您可能还对
console.log()
之类的函数感兴趣(它不是JavaScript标准-它的实现取决于您要使用的浏览器;它可以在其中工作。顺便说一下,is不应在部署的项目中使用)。因此,您可以将
success
方法修改为类似
console.log(数据)的内容。ajax请求完成后,打开开发者控制台(在大多数WebKit浏览器中默认为Ctrl+Shift+C),看看会发生什么。

您有权访问PHP调试器吗?我没有PHP调试器您有权访问PHP调试器吗?我没有PHP调试器啊,非常感谢您的帮助!!啊,非常感谢你的帮助!!