我目前正试图让用户点击一个单选按钮,然后自动更新我们数据库中的状态;但是我对.post函数有点问题。
<script>
$(function(){
$('input[type="radio"]').click(function(){
if ($(this).is(':checked'))
{
var value = ($(this).val());
alert(value);
}
});
});
</script>
这是执行它必须做的事情的代码,并且正确的值被传递给变量。
但是,将其修改为:
<script>
$(function(){
$('input[type="radio"]').click(function(){
if ($(this).is(':checked'))
{
var value = ($(this).val());
$.post('/choices.php',
{
choice: value,
auction_id: '<?php echo $sale['Product']['id']; ?>',
token: '<?php echo md5(session_id().$session->read('Auth.User.id')); ?>'
}
alert(value);
}
});
});
</script>
值未传递到PHP文件,并且警报不再起作用;所以我怀疑我没有正确实现$ .post功能。如果是这样,使用jQuery的.post函数的正确方法是什么?
答案 0 :(得分:0)
您应该为post方法添加回调方法。它看起来像:
$.post('/choices.php', {
choice: value,
auction_id: "<?php echo $sale['Product ']['id ']; ?>",
token: "<?php echo md5(session_id().$session->read('Auth.User.id ')); ?>"
},
function(data) {
value = data;
});
此外,您应该正确格式化Php代码(引号),就像我上面所做的那样。
答案 1 :(得分:0)
<script>
$(function(){
$('input[type="radio"]').click(function(){
if ($(this).is(':checked'))
{
var value = ($(this).val());
$.post('/choices.php',
{
choice: value,
auction_id: '<?php echo $sale['Product']['id']; ?>',
token: '<?php echo md5(session_id().$session->read('Auth.User.id')); ?>'
}); // append ")" here
alert(value);
}
});
});
</script>
然后这个ajax调用完成,没有等待alert(value);
语句
或者你可以在ajax调用时运行alert(value);
completed:
<script>
$(function(){
$('input[type="radio"]').click(function(){
if ($(this).is(':checked'))
{
var value = ($(this).val());
$.post('/choices.php',
{
choice: value,
auction_id: '<?php echo $sale['Product']['id']; ?>',
token: '<?php echo md5(session_id().$session->read('Auth.User.id')); ?>'
}, function(data){
alert(value);
});
}
});
});
</script>