我在jquery很新,我想我还不完全明白我在做什么。
我尝试从我的数据库中检索数据而不重新加载我的页面:
$('.add-team-member').click(function(e) {
e.preventDefault();
$.post('?c=Data&action=getData&class=TeamMember', function(data) {
console.log(data);
})
.fail(function() {
console.log('fail');
});
});
这是我的php文件:
class DataController extends Controller{
public static function getData()
{
//retrieve objects from my database and encode them as json string
var_dump(json_encode($_GET['class']::findAll()));
return json_encode($_GET['class']::findAll());
}
}
console.log(data)给出一个空字符串,并且不调用失败函数。我分别测试了我的php文件,它工作正常。对于一个不起眼的初学者有什么建议吗?谢谢!
编辑:看到你的一些评论让我觉得$ .post可能不是正确的方法。我想要实现的是从数据库中检索数据而不重新加载页面。我的目标是点击我的按钮会插入一个包含团队成员姓名的下拉列表。为此,我需要从我的数据库中获取TeamMembers的所有对象。 $ .post是实现这一目标的好方法吗?
编辑2 :好的,我明白了!我不知道我实际上需要回显我的数据以将它们传递给我的JS文件。我以为返回声明正在完成这项工作。就像我说的那样,我对此非常陌生^^谢谢你" Don&#tpanic"和" Taplar"您的帮助!你们很棒:-D
答案 0 :(得分:0)
以更简单的方式做你想做的事:
首先尽可能减少您的代码。这是通过以下逻辑完成的。
//This is your HTML
//This is your form, if any.
<input id="value_01" type="text">
<input id="value_02" type="text">
//This is the link to call the JS function.
<a href="javascript:void(0);" class="add-team-member" id="add-team-member" onclick="addMember();">Add Member</a>
//This is the div to display the result. You can use your own.
<div id="fetched_result">
</div>
//This is your JS function to be called on click.
<script type="text/javascript">
function addMember() {
//Fetch the values from your form, if any.
var value_01 = $('#value_01').val();
var value_02 = $('#value_02').val();
$.ajax({
type: "POST",
url: "your-php-script.php", // Name of the php files
data: {value_01 : value_01, value_02 : value_02},
success: function(html)
{
$("#fetched_result").html(html);
}
});
}
以下是您的PHP脚本。
<?php
if ($_POST) {
$value_01 = $_POST['value_01'];
$value_02 = $_POST['value_02'];
//Process your Posted values with PHP
//You need to echo your output. This will be populated in your result div as is.
$result = "<strong>" . $fetched_value;
echo $result;
}
?>
希望这有效。