首先,我意识到还有很多其他类似的帖子。我已经阅读了很多,但我仍然无法将其发挥作用。那就是.....我有一个动态创建的二维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问题。任何帮助将不胜感激。
答案 0 :(得分:2)
我看到了问题。为了访问你传递的内容,你需要从作为数组的$_POST
变量中获取它。在执行'$ data = json_decode($ _ POST);`
请注意,AJAX中的type
为post
,这与表单方法相同。如果你将`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']."')";
我感谢大家的回答。谢谢!