我正在尝试创建一个系统,人们可以在其中对问题的答案进行投票。
答案从数据库中获取,然后显示在数据库中。
对于投票系统,我需要将某些变量传递到 JS 中以执行一些 AJAX 魔术,但是我遇到了将变量传递给 JS 的第一个障碍。
目前代码如下所示:
<?php
if ($answers->num_rows() == 0) {
echo '<p>Be the first to answer this question!</p>';
} else {
foreach ($answers->result() as $row)
{
echo '<div class="answerswers-to-question">';
echo '<form>'; //form for the purpose of voting
echo '<input type="hidden" name="a_id" value="'.$row->a_id.'">'; //pass this to voting script
echo '<input type="hidden" name="u_id" value="'.$row->username.'">'; //pass this to voting script
echo '<pre>'.$row->answer.'</pre>';
echo '<p class="green">answered '.$row->timestamp.' by <i class="green">'.$row->username.'</i></p>';
echo '<input type="button" name="upvote" value="upvote" onClick="upvote(this.form.u_id);">';
echo '</form>';
echo '</div>';
}
}
?>
所以我有一个按钮,单击该按钮应在JS函数中传递变量
按钮
echo '<input type="button" name="upvote" value="upvote" onClick="upvote(this.form.u_id);">';
爪哇语
$(document).ready(function(){
function upvote(username){
console.log(username);
}
});
这不起作用,我收到错误:
Uncaught TypeError: object is not a function onClick
如果有帮助,我正在使用Codeigniter和JQuery框架
任何帮助非常感谢
使用
jQuery 而不是使用内联 JavaScript 来完成这一切
$(document).ready(function(){
function upvote(username){
console.log(username);
}
$('input[name="upvote"]').click(function() {
var username = $(this).parent('form').find('[name="u_id"]').val();
upvote(username);
});
});
例
这是一个向函数发送两个变量的更新。
只是为了添加一些信息,代码有两个问题:
- 你调用函数的方式
与调用按钮相同,所以这就是为什么消息说它不是一个函数,它是一个元素。
该函数是在 de .ready() 语句中声明的,因此该函数不存在。您必须在 ready() 语句之前声明它。