繁体   English   中英

将javascript数组传递给php

[英]passing javascript array to php

我正在尝试学习如何将数组传递给php,警报('成功')确实显示但我不认为该值传递给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>

我的PHP代码:

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

非常感谢你!

您需要将响应检索到成功函数中。 同样在php中你必须传递$table = json_decode($_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>

PHP代码:

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

好吧,据我所知,您希望您的PHP脚本(在后端)向您显示警报。 因此,这是不可能的,因为alert() - 是一种JavaScript方法,它应该在用户浏览器内部进行评估,以便查看由PHP脚本引起的警报。 此外,不要混淆back-endfront-end定义。 正如我已经说过的,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标准 - 它的实现取决于您要使用的浏览器;它适用于Webkit,Gecko和最新的Microsoft浏览器 。顺便说一句,它是说不应该在已部署的项目中使用 )。 因此,您可以将您的success方法修改为console.log(data); 完成ajax请求后,打开开发人员控制台(默认情况下在大多数WebKit浏览器中按Ctrl + Shift + C),看看会发生什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM