上下文:我尝试创建一个页面,点击图片会更改用户在服务器上的首选项。尝试使用ajax在不刷新页面的情况下发送信息,并使用Jquery来触发帖子。
问题:似乎没有发布任何内容。似乎ajax没有将数据发布到data.php文件。
预期的操作:点击图片后,父级的ID会在该用户的游戏列中发布。
的header.php
<script type="text/javascript">
$(document).ready(function(){
$(".pickteam").click(function() {
var game = $(this).parent().attr('data-id');
$.ajax
({
url: 'data.php',
data: {game: game},
type: 'post',
});
});
});
</script>
的index.php
<div class="col-md-3 team1 otherteam" data-id="m004">
<button class="pickteam">
<img src="http://img.fifa.com/images/flags/4/bra.png" alt="Brazil">
</button>
<span class="country">BRAZIL</span>
</div>
data.php
$game = $_POST['game'];
mysqli_query($con, "INSERT INTO choices (user, game) VALUES ('12345', '$game')");
在任何和所有帮助之前提前致谢。
答案 0 :(得分:2)
我猜你没有把你的数据ID设置为正确,因为你的jQuery代码应该是var game = $(this).parent().attr('data-id');
,所以要把它们放在一起:
<script type="text/javascript">
$(".pickteam").click(function() {
var game = $(this).parent().attr('data-id');
$.ajax
({
url: 'data.php',
data: {game: game},
type: 'post'
});
});
</script>
答案 1 :(得分:1)
使用var game = $(this).parent().attr('data-id');
从父div获取值
并从type : "post",
附近的ajax函数中删除额外的逗号,因此最终代码应为:
<script type="text/javascript">
$(document).ready(function(){
$(".pickteam").click(function() {
var game = $(this).parent().attr('data-id');
$.ajax
({
url: 'data.php',
data: {game: game},
type: 'post'
});
});
});
</script>
答案 2 :(得分:0)
您需要使用
var game = $(this).parent().attr('data-id');
获取data-id属性的值。 目前尚不清楚到底出了什么问题。你能提供一些关于你被困的地方的详细信息吗?
答案 3 :(得分:0)
您只需将代码包装在Document ready wrapper中:
<script type="text/javascript">
$(document).ready(function(){
$(".pickteam").click(function() {
var game = $(this).parent().data('id');
$.ajax
({
url: 'data.php',
data: {game: game},
type: 'post',
});
});
});
</script>