AJAX发布到数据库 - 多个提交按钮?

时间:2014-02-11 17:56:45

标签: php ajax

我刚开始使用javascript和ajax。所以这可能是一个初学者的问题,但我无法找到合适的解决方案..

我想通过ajax向php脚本发送一个id。到目前为止这个工作正常:(我在互联网上找到了它)

JS:

$(function() {
    $(".add_button.click(function() {
        var element = $(this);
        var test = $("#submitid").val();    
        var dataString = 'content='+ test;  
        $.ajax({
            type: "POST",
            url: "ajax_addlink.php",
            data: dataString,
            cache: false
        });
        return false;
    });
});

PHP

<form  method="post" name="form" action="">
    <input type="submit" value="'.$value.'" id="submitid" name="submit" class="add_button"/>
</form>

问题是,我希望在我的页面上有多个按钮,这取决于我的数据库条目(假设我的'test'数据库中有5个条目,也会有5个按钮。)上面的代码不是这是因为所有按钮具有相同的ID。

这就是我解决这个问题的方法:我传递了不同的ID和类:

$i=1;
while($r=mysql_fetch_array($q)){
    echo '  <form  method="post" name="form" action="">
                <input type="submit" value="'.$value.'" id="submitid'.$i.'" class="add_button'.$i.'"/>
            </form>';   
    $i++;
}

<?php for ($i = 1; $i <= $max_i; $i++) { ?>
<script type="text/javascript">
$(function() {
    $(".add_button<?php echo $i?>").click(function() {
        var element = $(this);
        var test = $("#submitid<?php echo $i?>").val(); 
        var dataString = 'content='+ test;  
        $.ajax({
            type: "POST",
            url: "ajax_addlink.php",
            data: dataString,
            cache: false 
        });
        return false;
    });
});
</script>
<?php } ?> 

这实际上有效,但我认为这不是一个非常干净的解决方案,因为那时我有50&lt;脚本&gt; &LT; / script&gt;最后的代码..

任何想法如何以更好的方式做到这一点?

1 个答案:

答案 0 :(得分:0)

你的第一条路几乎就在那里。 $(".add_button")获取类add_button的所有元素,该代码将所有按钮与事件处理程序绑定。无需使用ID 使用Javascript:

    $(".add_button").click(function() {
        var dataString = 'content='+ $(this).val(); 
        $.ajax({
            type: "POST",
            url: "ajax_addlink.php",
            data: dataString,
            cache: false
        });
        return false;
    });

PHP

<form  method="post" name="form" action="">
    <input type="submit" value="'.$value.'" class="add_button"/>
</form>