2016-02-03 2 views
1

Прежде всего, я намерен иметь 1 файл js, где есть несколько вызовов ajax. Я хочу, чтобы эти ajax-вызовы, которые являются файлами php, имели один и тот же файл js внутри него, но не выполняли другой запрос, что заставляет его работать медленно после любого щелчка.Использование только одного js-файла для нескольких вызовов ajax php

Некоторые из моих основных 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-файл (отредактированный pa rt), потому что, если я этого не сделаю, он не распознает, когда я нажимаю на $(".alias-dir-a").click(function()). Это то, что я хочу сделать возможным?

+2

Вы можете попробовать '$ ("# адр-контента"). на ('нажмите', ".alias-реж-а", функция() {' – empiric

+0

Благодарим Вас за Ответ, действительно, это то, что я искал. – danibg

ответ

1

От этого вы вызываете .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; 
    } 
}); 
+0

Я постараюсь, если это сработает, спасибо – danibg

+0

Отлично работает. – danibg

Смежные вопросы