php - 使用jquery live函数时,如何只提交点击事件(div)?

标签 php jquery mysql html

使用jquery live函数时,如何只提交点击事件(div)?

我正在尝试做什么。

点击输入,在mysql中搜索联系人。 单击联系人并将联系信息插入数据库。 这部作品 我遇到的问题是它将页面上的所有 while 循环插入到 msql 数据库,我需要一些帮助来解决这个问题。

搜索激活时加载的 PHP 代码:

这是一个 while 循环:

<?php 
echo '
<div id="'.$get_memID.'" class="box_content">
    <table width="100%">
        <tr>
            <td width="50%" align="left"> '.$profile_pic_lil.'&nbsp;<span style="font-size: 14px; font-weight: bold; color: #060; ">'.$get_memfirstName.'&nbsp;'.$get_memlastName.'</span></td>
            <td width="40%"align="right" valign="top">
                <span style="font-size: 12px; color: #999999;">'.$linkUP_As.'</span>
                <input name="to_mem" type="hidden" id="to_mem" value="'.$get_mem.'" />
                <input name="to_memID" id="to_memID" type="hidden" value="'.$get_memID.'" />
                <input name="to_memfirstName" id="to_memfirstName" type="hidden" value="'.$get_memfirstName.'" />
                <input name="to_memlastName" type="hidden" value="'.$get_memlastName.'" />   
            </td>
        </tr>
    </table>
</div>
'; 
?>

加载搜索的 Jquery 脚本:

$(document).ready(function(){
    var timer;                                         
    $(".search").live('keyup',function(e){

        clearTimeout(timer);

        var ms = 200; // milliseconds
        var val = this.value;

        timer = setTimeout(function() {
            lookup(val);
        }, ms);

        var dataString = 'mysearchString='+ val;

        if(val==''){
        } else {
            $.ajax({
                type: "POST",
                url: "/happening_searchlinkUP.php",
                data: dataString,
                cache: false,
                success: function(html){
                    $("#display<?php echo $id; ?>").html(html).show();
                }
            });
        }

        return false; 
    });
});

将 php 文件发送到 mysql 的 Jquery 脚本:

$(document).ready(function(){
    $(".box_content").live('click',function(e){                                    
        var element = $(this);
        var id = element.attr("id");
        var mem_email = $("#to_mem").val();
        var mem_firstName = $("#to_memfirstName").val();
        var happening_id = $("#happening_id<?php echo $id; ?>").val();
        var info = "id=" + id + '&mem_email=' + mem_email + '&mem_firstName=' + mem_firstName + '&happening_id=' + happening_id;            

        $.ajax({
            type: "POST",
            url: "/happening_getMem_linkUP.php",
            data: info,
            cache: false,
            success: function(html){
                $("#now_from_linkup<?php echo $id; ?>").html(mem_firstName);
            }
        });

        return false;
    });
}); 

我们很乐意接受任何帮助,并提前致谢

最佳答案

您必须消除 ajax 调用的抖动,最简单的方法是执行 doOnce

var doOnce = 1;
$(document).ready(function(){
    $(".box_content").live('click',function(e){                                    
        var element = $(this);
        var id = element.attr("id");
        var mem_email = $("#to_mem").val();
        var mem_firstName = $("#to_memfirstName").val();
        var happening_id = $("#happening_id<?php echo $id; ?>").val();
        var info = "id=" + id + '&mem_email=' + mem_email + '&mem_firstName=' + mem_firstName + '&happening_id=' + happening_id;            
        if(doOnce){
        doOnce--;
        $.ajax({
            type: "POST",
            url: "/happening_getMem_linkUP.php",
            data: info,
            cache: false,
            success: function(html){
                $("#now_from_linkup<?php echo $id; ?>").html(mem_firstName);
                doOnce++;
            }
        });
        }
        return false;
    });
}); 

doOnce 开始为 true,因此将调用 ajax,并且 doOnce 将变为 false 以禁用 ajax 调用,然后当 ajax 返回成功时,doOnce 将被设置回 true 以允许其再次运行。

您还可以使用Ben Alman's Throttle & Debounce plugin

关于php - 使用jquery live函数时,如何只提交点击事件(div)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9487849/

相关文章:

jQuery:如何使用循环创建数组

mysql - 在 MySQL 中使用联接从多个表中选择数据

php - 更新 id 而不是选择、删除和插入?

php - 将 sql 结果传递给 View 将 View 硬编码为数据库列名称

php - Codeigniter 仅更新第一行

javascript - 使用 Jquery 的图表

mysql - 按数字选择列 - SELECT [m :n] FROM table_name

php - 检查 Woocommerce 3 中的购物车是否为空

php - codeigniter 如何加载 View 文件并传递变量?

javascript - LocalStorage 是否以任何方式支持自定义(即非原始类型)对象存储和检索?