php
  • javascript
  • html
  • 2013-07-05 3 views 1 likes 
    1

    Ici je JavaScript pour supprimer un employé .../redirection fonctionnalité ne fonctionne pas - javascript

    <script type="text/javascript"> 
    function delet(emp) 
    { 
        var answer = confirm('Are you sure?'); 
        if(answer) 
        { 
         window.location='delete.php?emp='+emp; 
        } 
    } 
    </script> 
    

    En utilisant balise d'ancrage vous appelle la fonction javascript ....

    <a onclick="javascript:delet('<? echo $_GET['emp']; ?>')"> 
    <input type="button" name="delete" id="delete" style="background: url('images/del1.jpg')no-repeat;width:50px;height:50px" value=""/></a>   
    

    Mais mon problème est qu'il fonctionne jusqu'à montrer le message d'alerte mais après avoir répondu au message d'alerte il ne redirige pas vers la page donnée par moi qui est "delete.php? Emp = + emp"

    +0

    ya, mais il ne fonctionne pas ... –

    +0

    Qu'est-ce d'autre, il suffit de rien? Pourquoi avez-vous un bouton de soumission à l'intérieur de ce lien? – Bergi

    +0

    maintenant je l'ai édité mais il ne fonctionne pas ... @ Bergi –

    Répondre

    0

    Vous soumettez une certaine forme en cliquant sur ce bouton. Ce processus de soumission annulera la demande de navigation window.location. Une solution rapide serait d'empêcher que:

    <a onclick="event.preventDefault(); delet('<? echo $_GET['emp']; ?>');"> 
    // cross-browser-safe: 
    <a onclick="delet('<? echo $_GET['emp']; ?>'); return false"> 
    

    mais en réalité votre balisage avec le bouton imbriqué est tout à fait étrange. Vous n'avez pas besoin de ce lien du tout, il suffit d'utiliser

    <form action="delete.php" onsubmit="return confirm('Are you sure');"> 
        <input type="hidden" name="emp" value="<? echo $_GET['emp']; ?>" /> 
        <input type="submit" name="delete" id="delete" style="background: url('images/del1.jpg')no-repeat;width:50px;height:50px" value="" /> 
    </form> 
    
    7

    Parce que vous imbriquez un <input type="Submit"/> à l'intérieur d'un <a>, en cliquant sur le bouton n'est pas la même que cliquant sur le <a>, plutôt il "Soumet" nulle part (lire à la page que vous êtes déjà, rafraîchissant la page) avant le <a> peut faire son travail.

    Simple demo où vous ne pas aller à google.

    <a href="http://google.com/"><input type="Submit"/></a> 
    

    Bergi a pointed out que le comportement I décrit est pas universel(bonjour Opera, IE)à moins qu'un élément <form> est présent, de sorte for example ce qui suit

    <form action="jail.php"> 
        <a href="go.php" onclick="window.location='?collect=£200';"> 
         <input type="submit"/> 
        </a> 
    </form> 
    

    vous enverra directement à prison sans passer aller ou collecte £ 200 dans tous les navigateurs. En outre, cela ne s'applique réellement qu'à la redirection de page; d'autres parties du script peuvent bien se déclencher avant que la page ne change, le plus facile à observer étant console.log, alert, etc.

    +1

    bonne illustration du problème qu'il a, plutôt que de la réponse directe. +1 – defau1t

    +1

    Au moins Opera * ne * va pas sur Google. Il a besoin d'un '

    ', [ce violon] (http://jsfiddle.net/L4Bvw/1/) conduira à Wikipedia. – Bergi

    +0

    @ Bergi J'ai testé dans _Chrome_ et _FireFox_ et comme prétendre _IE_ est un mauvais rêve, alors vous me dites _Opera_ est parfois plus proche de lui que les deux autres? Un cauchemar! Quoi qu'il en soit, réponse mise à jour. –

    Questions connexes