我有这个PHP文件:
JSONtest.php
<?php
$a=5;
echo json_encode($a);
//This converts PHP variable to JSON.
?>
我想使用Ajax和JSON来警告这个变量的值,为此我编写了这个脚本:
learningJSON.php
$(document).ready(function(){
$("button").click(function(){
$.ajax({
url: 'JSONtest.php',
type: 'POST',
data: data,
dataType: 'json',
success: function(result){
alert(result);
},
error: function(){
alert("Error");
}
});
});
});
但是当我点击按钮时,我收到以下错误消息: learningJSON.php:14未捕获的ReferenceError:未定义数据
我在做什么错?我该如何解决这个问题?
答案 0 :(得分:2)
<?php
$a=5;
echo json_encode($a);
//This converts PHP variable to JSON.
?>
不,它没有。将简单数字转换为JSON的重点是什么?它保持为5
现在真正的问题。是的,您的data
变量未在JavaScript代码中的任何位置定义。如果您没有要发送的数据,请删除该参数。
但是,如果您仍想传递某些数据,请相应地进行定义。例如
data: { fname: "John", lname: "Doe" }
现在让我们在您的下一个练习中说您想要发布表单数据,您可以使用名为 serialize() 的好功能。这将从您的表单中获取所有可用的字段,并将其与此请求一起发送。
data : $("#formID").serialize()
答案 1 :(得分:1)
未定义数据变量,您可以删除
Php文件
<?php
$a = $_REQUEST['number'];
echo json_encode($a);
//This converts PHP variable to JSON.
?>
Javascript文件
$(document).ready(function(){
$("button").click(function(){
$.ajax({
url: 'JSONtest.php',
type: 'POST',
//data: {'number' : 10}, //this is when you need send parameters to the call, uncomment to send it parameters
dataType: 'json',
success: function(result){
alert(result);
},
error: function(){
alert("Error");
}
});
});
});
答案 2 :(得分:0)
我认为这个对你来说应该是完美的。 我们需要3个文件
这意味着当用户通过从表单输入[index]收集所有数据时,在login.js中提交运行ajax进程脚本[index.php
]的[login.js
]脚本js文件[json
]。 php]并发送并运行脚本login.php
... 这是ajax&amp;强大的脚本JSON 强>
检查以下代码
的index.php
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="login.js" type="text/javascript" charset="utf-8"> </script>
</head>
<body>
<form method="post" id="login" name="login">
Email: <input type="email" id="log-mail" name="log-mail" > <br />
Password: <input type="password" id="log-pass" name="log-pass" > <br />
<button type="submit" >Log in</button>
</form>
</body>
</html>
login.js
$(document).ready(function(){
// #login = login is the name of our login form
$('#login').submit(function(e) {
$.ajax({
type: "POST",
url: "login.php",
data: $('#login').serialize(),
dataType: "json",
success: function(msg){
if(parseInt(msg.status)==1)
{
window.location=msg.txt;
}
else if(parseInt(msg.status)==0)
{
window.location=msg.txt;
}
}
});
e.preventDefault();
});
});
的login.php
<?php
if(isset($_POST['log-mail']) && $_POST['log-mail'] != '' && isset($_POST['log-pass']) && $_POST['log-pass'] != '' ) {
$_data_ = 'index.php?user_data='.$_POST['log-mail'];
echo msg_result(1,$_data_);
}else{
$msg_att = "index.php?login_attempt=1";
echo msg_result(0,$msg_att);
}
function msg_result($status,$txt) {
return '{"status":'.$status.',"txt":"'.$txt.'"}';
}
?>
如果你
,你可以在你的网址上看到希望这可以解决您的问题