Ajax和笨 - 服务器端
我还没有收到以下AJAX数据:Ajax和笨 - 服务器端
$.ajax({
type: "POST",
url: base+"tree/plant/",
data:{
name: $('#field_treename').val(),
summary: $('#field_summary').val(),
description: $('#field_description').val(),
address: $('#field_url').val(),
category: $('#field_category').val()
}
})
.done(function(resp){
$('#plant-tree-inner').html(resp);
});
base
是我的基本URL,tree
是控制器和plant
是在控制器的方法。
该URL是正确的,控制器和方法到位,正确的名称。我通过在plant
方法中回应一个字符串来确保它的正确性,并且在AJAX响应之后,它在客户端上正确显示。
但是,没有任何发布数据似乎到达服务器。
做echo $this->input->post('name');
里面的plant
方法给出一个空字符串。做var_dump($_POST)
给出一个空数组。我甚至尝试给参数plant
方法,但只是抛出一个missing parameter
错误。
那么数据迷失在哪里,为什么?
编辑:我现在看到我的问题是错误的。它与CodeIgniter无关,因为数据根本没有被发送。该字段值根据的Javascript是undefined
,但肯定是存在于HTML:
<input type="text" id="field_treename" placeholder="Tree name" value="" />
用户这一个..
var request = "name="+$('#field_treename').val()+"&"
request += "summary="+$('#field_summary').val()+"&"
request += "description="+$('#field_description').val()+"&"
request += "address="+$('#field_url').val()+"&"
request += "category="+$('#field_category').val()
,并设置为data=request
。这应该工作。
Jquery可以序列化对象 – 2015-02-06 19:01:34
你可以试试这也..
$.ajax({
type: "POST",
url: base+"tree/plant/",
data:{
name: $('#field_treename').val(),
summary: $('#field_summary').val(),
description: $('#field_description').val(),
address: $('#field_url').val(),
category: $('#field_category').val()
}
success:function(resp){
$('#plant-tree-inner').html(resp);
}
});
在'success:function(resp){'引发一个语法错误。 – jovan 2015-02-07 11:36:19
尝试模拟问题中非常基本的方法,就像在本地主机或服务器这样创建另一个目录和创建文件,如下描述。
在index.php<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>POST Sending Problem</title>
<script src="jquery-1.12.2.js"></script>
</head>
<body>
<a href="#" onclick="test(12, 'http://localhost/your_test_dir/your_phpfile.php')">Link</a>
<script src="custom_function.js"></script>
</body>
</html>
创建例如test.js
js文件,并把这个作为测试
function test (id, base) {
$.ajax({
type: "POST",
data: {
'id': id
},
url: base,
success: function(data) {
alert(data);
},
error: function(data) {
alert('no data');
}
});
}
接下来,创建一个PHP文件your_phpfile.php
<?php
if (isset($_POST['id'])) {
echo $_POST['id'];
} else {
echo "no-result";
}
?>
这将有助于
你确定问题。如果这工作正常,请尝试使用codeigniter应用它。
好运
我遇到同样的问题,我给你的方法帮助我确定问题 – Fil 2016-04-01 08:44:42
检查开发工具中的网络选项卡,并检查是否发布了发布数据。 – 2015-02-06 18:53:15
@TamásSzabó看来它没有被发送。标题在那里,但是'post'是空的。任何想法为什么? – jovan 2015-02-06 18:56:27
你有父母表吗? – 2015-02-06 19:02:19