我是javascript和AJAX的新手。我有动态HTML表格,我在其中添加了一个带有textarea的新列。我创建了一个javascript数组,存储了我希望传递给我的php脚本的所有textarea的名称。
这是我的javascript函数:
function checkout()
{
$.ajax({
type : "POST",
url : "loadmsg.php",
data : {'file_array' : upload},
success : function(data)
{
if(data.status == 'success')
alert("Thank you for subscribing!");
else if(data.status == 'error')
alert("Error on query!");
}
});
}
这里upload是一个全局的javascript数组,我希望传递给我的php脚本loadmsg.php 这是loadmsg.php文件:
<?php
if(isset($_POST['file_array']))
{
$file_array = $_POST['file_array'];
echo "<script type='text/javascript'>alert('Success');</script>";
}
?>
但是当执行结账功能时,没有警报框。我检查过上传数组不是空的
谁能告诉我哪里出错了?
使用Firebug进行调试后,我在控制台中收到以下错误
ReferenceError:$ not defined
行
$.ajax
答案 0 :(得分:3)
像这样更改你的PHP代码
<?php
if(isset($_POST['file_array']))
{
$file_array = $_POST['file_array'];
echo json_encode(array('status' => 'success'));
}
?>
并对您的js代码进行一些更改
$.ajax({
type : "POST",
url : "loadmsg.php",
data : {'file_array' : 'upload'},
success : function(data)
{
var response = $.parseJson(data);
if(response.status == 'success')
alert("Thank you for subscribing!");
else if(response.status == 'error')
alert("Error on query!");
}
});
希望它能起作用
答案 1 :(得分:1)
试试这个对我有用:
你的剧本
function checkout()
{
$.ajax({
type : "POST",
url : "form1.php",
data : {'file_array' : upload},
success : function(data)
{
var data = JSON.parse(data);
if(data.status == 'success')
alert("Thank you for subscribing!");
else if(data.status == 'error')
alert("Error on query!");
}
});
}
你的PHP应该是。,
<?php
if(isset($_POST['file_array']))
{
$file_array = $_POST['file_array'];
$data['status'] = 'success';
echo json_encode($data);
}
?>
答案 2 :(得分:0)
您需要从AJAX(PHP)文件的后端回显变量。
Javscript文件中已存在警报。
因此,更正的PHP文件是:
<?php
if(isset($_POST['file_array']))
{
$file_array = $_POST['file_array'];
echo 'success';
}
?>
AND js,
success : function(data)
{
if(data == 'success')
alert("Thank you for subscribing!");
else if(data == 'error')
alert("Error on query!");
}
您可以使用Firefox的Firebug进行调试。
转到Firebug's
Console
标签,查看要求的内容。
它会显示:
发布参数
后端文件的输出。
从这里,您将准确了解数据流。
答案 3 :(得分:0)
包含在您的头标记中
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
的javascript
不要忘记将dataType: "json",
添加到您的ajax
function checkout()
{
$.ajax({
type : "POST",
dataType: "json",
url : "loadmsg.php",
data : {'file_array' : upload},
success : function(data)
{
if(data.status == 'success')
alert("Thank you for subscribing!");
else if(data.status == 'error')
alert("Error on query!");
}
});
}
PHP
<?php
if(isset($_POST['file_array']))
{
$file_array = $_POST['file_array'];
$arr['status']='success';
echo json_encode($arr);
}
?>
试试这个