我的代码无法在浏览器中运行,也没有将数据发送到process.php。我不知道问题出在哪里。
我原来的js数据结构 - data-today.php(每日更新,我在头后打开)
var football = new Array(); football[0] = new Array('Argentina','Primera Division','Boca Juniors'); football[1] = new Array('Argentina','Primera Division','Lanús'); football[2] = new Array('England','Premier League','Arsenal'); football[3] = new Array('England','Premier League','Liverpool');
这是我的代码,我想将所有数据传递给一个简单的html dom解析器。我不知道问题出在哪里。
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="json2.js">
</script>
<script src="data-today.php" type="text/javascript" language="javascript"></script>
</head>
<body>
<script language="javascript" type="text/javascript">
<!--
$(document).ready(function () {
var json = JSON.stringify(football);
for (var i = 0; i < json.length; i++) {
alert(json);
$.ajax ({
type:"POST",
url:"process.php",
contentType: "application/json",
dataType: "json",
async: true,
data: {
country: $("json[i][0]"),
competition: $("json[i][1]"),
team: $("json[i][2]")},
success: function(){ alert("data")},
error: function(){ alert("error")}
});
}
});
</script>
<table>
</table>
</body>
</html>
答案 0 :(得分:0)
你在javascript数组中已经有了很好的数据,如果你真的想在for循环中发布数据,你可以使用下面的内容。
$(document).ready(function ()
{
// scrap that line, you have the values in array (of arrays)
//var json = JSON.stringify(football);
for (var i = 0; i < football.length; i++)
{
//alert(json);
$.ajax ({
type:"POST",
url:"process.php",
contentType: "application/json",
dataType: "json",
async: true,
data: {
country: football[i][0],
competition: football[i][1],
team: football[i][2],
success: function(){ alert("data")},
error: function(){ alert("error")}
});
}
});
你可能还应该将你的data-today.php重命名为data-today.js,因为它似乎是一个javascript文件而不是php文件......
答案 1 :(得分:0)
(1)var football
是一个数组,所以当你执行var json = JSON.stringify(football);
时它会把它变成一个字符串,所以当你执行for (var i = 0; i < json.length; i++) {
时它会循环遍历字符串字符,而不是一个数组。
(2)如果json
是一个数组,则无需将其作为对象 - $("json[i][0]")
。只需直接访问它 - json[i][0]
。
所以现在你的代码看起来像
<script language="javascript" type="text/javascript">
var football = new Array();
football[0] = new Array('Argentina','Primera Division','Boca Juniors');
football[1] = new Array('Argentina','Primera Division','Lanús');
football[2] = new Array('England','Premier League','Arsenal');
football[3] = new Array('England','Premier League','Liverpool');
$(document).ready(function () {
var json = football;
for (var i = 0; i < json.length; i++) {
$.ajax({
type:"POST",
url:"process.php",
contentType: "application/json",
dataType: "json",
async: true,
data: {
country: json[i][0],
competition: json[i][1],
team: json[i][2]},
success: function(){ alert("data")},
error: function(){ alert("error")}
});
}
});
</script>
jsFiddle示例 - http://jsfiddle.net/pdrw4r73/1/(我在alert("error")
中注释了error: function(){ alert("error")}
,但您可以展开Firebug Lite中的POST
以查看$.ajax()
讯息。)
答案 2 :(得分:0)
感谢大家的答案。如果我尝试更新我的代码,我在firefox控制台上遇到了这个错误:SyntaxError:expected expression,got&#39;}&#39; ,在</script>
标签之前的某个地方。我尝试了两个版本,但如果我尝试打开我的process.php,结果是一样的。
我的process.php:
<?php
include ("auto3.php");
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>