从PHP插入DOM的动态变量。无法将该变量从DOM传递到Javascript

从PHP插入DOM的动态变量。无法将该变量从DOM传递到Javascript,javascript,php,jquery,html,codeigniter,Javascript,Php,Jquery,Html,Codeigniter,我正在尝试建立一个系统,人们可以对问题的答案进行投票 答案从数据库中提取,然后显示在foreach中 对于投票系统,我需要将某些变量传递到JS中,以实现AJAX的魔力,然而,我遇到的第一个障碍是将变量传递给JS 目前代码看起来是这样的: <?php if ($answers->num_rows() == 0) { echo '<p>Be the first to answer this question!</p

我正在尝试建立一个系统,人们可以对问题的答案进行投票

答案从数据库中提取,然后显示在foreach中

对于投票系统,我需要将某些变量传递到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="answers-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>';

                }
            }               
            ?>
这不起作用,我得到了一个错误:

$(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);
    });
});
如果有帮助,我将使用Codeigniter和JQuery框架


非常感谢您提供的任何帮助

使用jQuery而不是内联JavaScript来完成这一切-


下面是一个向函数发送两个变量的示例。

仅为了添加一些信息,代码有两个问题:

您调用的函数与按钮调用的函数相同,这就是为什么消息说它不是函数,而是元素

该函数是在de.ready语句中声明的,因此该函数不存在。您必须在ready语句之前声明它


您的输入名为upvote。InternetExploder有一个奇妙的愚蠢之处:自动创建顶级对象,命名与表单中的每个名称属性相同。所以onclick=upvote。。。不是调用你的函数,而是试图像调用函数一样调用你的输入。@MarcB啊,我明白了。那么,如何让它引用标记中的函数呢?将函数或输入的名称更改为其他地方未使用的名称。
$(document).ready(function(){

        function upvote(username){

            console.log(username);

        }
    });
Uncaught TypeError: object is not a function   onClick
$(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);
    });
});