我有一个项目表,当用户选择一个项目时我想将该id设置为php变量,所以当它点击按钮“Ok”时,我将该项与用户关联起来。他一次只能选择一件物品。我已经尝试了一些php / ajax教程,但似乎没有用。
以下是代码:
<table id="tableItens" style="border:1px solid #000000;" cellpadding="0" cellspacing="0">
<tbody>
<?php foreach($produtoList as $produto) {
if ($columnCounter == 0) { ?>
<tr style="background-color:#FFFFFF;">
<?php
}
?>
<td id="<?php echo $produto['id'] ?>" width=160px; height="110" onclick="<?php echo 'selectRow(' . $produto['id'] . ');' ?>" style="text-align: center; border:1px solid #000000;border-bottom:0;"><?php echo'<img align="center" width="150" height="100" src="/resources/images/' . $produto['nome_imagem'] . '"></img>' ?></td>
<?php $columnCounter++; ?>
<?php if ($columnCounter == 3) {
$columnCounter = 0; ?>
</tr>
<?php } ?>
<?php } ?>
</tbody>
<script type="text/javascript">
function selectRow(id) {
var table = document.getElementById("tableItens");
document.getElementById(id).style.backgroundColor = 'red';
$.ajax
({
type: "POST",
url: "vote.php",
data: id,
cache: false,
success: function(data)
{
alert("ok");
}
});
}
</script>
我是否必须包含ajax文件?也许是一个jquery参考?
我在页面开头使用了var_dump($ _ POST),但没有显示任何内容。我正在将值发送到同一页面。
答案 0 :(得分:3)
关于数据字段不正确的答案是正确的,但这个简单的事情不应该是“POST”它应该只是一个GET,它根本不需要'data'字段。只需将URL字段更改为:“vote.php?id =”+ id
像这样:
$.ajax
({
type: "GET",
url: "vote.php?id=" + id,
cache: false,
success: function(data)
{
alert("ok");
}
});
答案 1 :(得分:1)
您尚未正确设置ajax请求的数据。 请参阅http://api.jquery.com/jQuery.ajax/
数据:要发送到服务器的数据...对象必须是键/值对
注意:它也可以是字符串,但您必须正确格式化
试
data: {uid : id},
当然,你必须包含对jQuery的引用,你正在使用jQuery
为了测试这样的东西,我建议使用通常附带大多数现代浏览器的JS控制台。您可以将POST更改为GET,并查看生成的URL类型。