繁体   English   中英

仅使用一个js文件进行多个php ajax调用

[英]Using only one js file for multiple php ajax calls

首先,我的目的是要有1个js文件,其中存在多个ajax调用。 我希望这些ajax调用(它们是php文件)在其中具有相同的js文件,但不执行其他请求,这使其在单击后运行缓慢。

我的一些主要php文件:

<head>
    <script src="<?php echo $_SESSION['url'] ?>js/direcinfo.js"></script>
</head>
<body>

    <div class="direcciones">
        <a href="javascript:void(0)" id="c_menu_direcciones" class="c-menu c_menu_direcciones">
            <p>
              Direcciones
            </p>
        </a>
    </div>
    <div id="cuenta_menu_direcciones" class="c-menu-content">
        <h1>Direcciones de correo</h1>
        <div id="expand_wrapper_dir">
        </div>
    </div>
</body>

js文件( direcinfo.js ):

$('#c_menu_direcciones').click(function(){
   $.ajax({
      dataType: "html",
      type: "POST",
      url: "direcalias.php",
      success: function(cntnt){
      $("#expand_wrapper_dir").html(cntnt);
    }
    });
    return false;
});

$(".alias-dir-a").click(function(){
    var useremail=$("#useremail").val();
    var alias=$(this).html();
    if(alias==="+")
    {
        $.ajax({
            dataType: "html",
            type: "POST",
            url: "direcnew.php",
            data: "email="+useremail,
            success: function(cntnt){
                $("#direc-content").html(cntnt);
            }
        });
        return false;
    }
});

Ajax加载的文件( direcalias.php

<?php
    session_start();
    header("Content-Type: text/html; charset=ISO-8859-1");
    include_once 'connection.php';
    $conn = bbddconnect();
    $email=$_SESSION['useremail'];
    $query = "SELECT CODIDIR,ALIAS"
            . " FROM CLIENTE C,DIRECCION D"
            . " WHERE EMAIL LIKE '$email' AND C.CODICNT = D.CODICNT;"; 

    $result3 = mysqli_query($conn,$query)or die(mysqli_error());
    $recount = mysqli_num_rows($result3);
    echo '<div class="menu-alias madir">';
        for($i=0;$i<$recount;$i++)
        {
        $row = mysqli_fetch_array($result3);

    echo '<div class="alias adir ali-'.$i.'">
        <a href="javascript:void(0)" class="alias-dir-a">'.$row['ALIAS'].'</a>
    </div>';

        }

    echo '<div class="alias adir ali-nuevo">
        <a href="javascript:void(0)" class="alias-dir-a">+</a>
    </div>
    </div>
    <div id="direc-content"></div>';

    //echo '<script>'.
    //            'var url = "'.$_SESSION['url'].'js/direcinfo.js";'.
    //            '$.getScript(url);'.
    //    '</script>';

?>

我遇到的问题是,在调用direcalias.php文件时,我需要再次调用js文件(已编辑部分),因为如果不这样做,则在单击$(".alias-dir-a").click(function())时无法识别$(".alias-dir-a").click(function()) 我想做的事可能吗?

因为您在创建.alias-dir-a之前先调用它。 您可以使用on

$(document).on("click", ".alias-dir-a", function() {

    var useremail=$("#useremail").val();
    var alias=$(this).html();
    if(alias==="+")
    {
        $.ajax({
            dataType: "html",
            type: "POST",
            url: "direcnew.php",
            data: "email="+useremail,
            success: function(cntnt){
                $("#direc-content").html(cntnt);
            }
        });
        return false;
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM