将Javascript对象传递给PHP JSON解码

时间:2017-07-31 23:57:56

标签: javascript php json ajax

首先,我意识到还有很多其他类似的帖子。我已经阅读了很多,但我仍然无法将其发挥作用。那就是.....我有一个动态创建的二维javascript对象。我试图将它传递给PHP,所以我可以将其插入到MySQL表中。看起来最简单的方法是使用Ajax帖子。 这是我的javascript:

   var jsonString = JSON.stringify(TableData);

               $.ajax({
                    type: 'POST',
                    url: 'submit.php',
                    data: jsonString, 

                    success: function(){
                        alert("OK");
                    } 
                }); 

我总是得到成功警报,所以我认为问题不存在。 这是我的PHP文件。

<?php
$servername = "localhost";
$username = "SME";
$password = "mypass";
$db = "p3";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $db);
if (!$conn) {

         die("Could not connect to database");
        } else echo "hey hey";


$data = json_decode("jsonString");


     print $data;

 ?>

我不确定我做错了什么。这两个文件都在同一个文件夹中,所以我不认为这是一个URL问题。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

我看到了问题。为了访问你传递的内容,你需要从作为数组的$_POST变量中获取它。在执行'$ data = json_decode($ _ POST);`

之后,您可以迭代该数组以获得所需内容并将其插入到数据库中

请注意,AJAX中的typepost,这与表单方法相同。如果你将`dataType:“json”添加到你的参数中,它也可能对你的ajax有帮助。

$.ajax({
                type: 'POST',
                url: 'submit.php',
                data: jsonString,
                dataType: 'json'

                success: function(){
                    alert("OK");
                } 

答案 1 :(得分:0)

所以看起来你的PHP实际上并没有抓住发布的数据。

这就是我建议获取数据的方式:

<?php
    // Check if the posted value is not empty
    if (!empty($_POST('jsonString')) {
        $jsonData = json_decode($_POST('jsonString'));
    }
?>

然后你就可以用$ jsonData做你需要的了。

答案 2 :(得分:0)

主要问题出在我的PHP代码中。这是答案。

$data = json_decode($_POST['denied'], true);

然后我能够像这样插入我的MySQL表中:

foreach($data as $user) {

        $sql = "INSERT INTO deniedusers (firstname, lastname, username, email, password) values ('".$user['fname']."', '".$user['lname']."', '".$user['uname']."', '".$user['email']."', '".$user['password']."')";

我感谢大家的回答。谢谢!