我正在尝试学习如何将数组传递给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>';
?>
非常感谢你提前!!
答案 0 :(得分:0)
您需要将响应检索到成功功能。同样在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;
?>
答案 1 :(得分:0)
好吧,据我所知,您希望PHP脚本(在后端)向您显示警报。因此,这是不可能的,因为alert()
- 是一种JavaScript方法,它应该在用户浏览器内部进行评估,以便您看到由PHP脚本引起的警报。此外,请勿混淆back-end
和front-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标准 - 它的实现取决于您要使用的浏览器;它适用于{ {3}}。顺便说一句,就是说不应该在已部署的项目中使用)。因此,您可以将success
方法修改为console.log(data);
之类的方法。完成ajax请求后,打开开发人员控制台(默认情况下在大多数WebKit浏览器中按Ctrl + Shift + C),看看会发生什么。