javascript
  • php
  • html
  • popup
  • 2017-08-24 39 views 0 likes 
    0

    我有一个提交按钮“证书副本”,当我点击它应该显示一个弹出按钮。 以下是我的html代码。弹出后点击html表单提交使用php

    print "<script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script>"; 
    print "<form action='details.php' name='copy' method='POST' target='_blank'>"; 
    
    
         print "<input type='hidden' name='certificate_name' value='$certificate_name'>"; 
         print "<input type='hidden' name='certificate_id' value='$certificate_id'>"; 
    
    
         print "<input type='submit' name='certificatecopy' id='certificate' value='Certificate Copy'>"; 
    
    print "</form>" ; 
    

    和我的弹出代码

    print "<script> $(document).on('click','#certificate',function(){val = confirm('Do you want to create a new certificate?'); 
    alert(val); 
    if(val) 
    { 
        alert('proceed '); 
        return true; 
    } 
    else 
    { 
        alert('Dont proceed'); 
        return false; 
    } 
    });</script>"; 
    

    我的问题是,当我按一下按钮,第一时间弹出框不会出现。但是当第二次点击该按钮时,弹出框出现。问题是什么。当第一次点击按钮时,我需要弹出窗口。请帮忙。

    +0

    因为'if(isset($ _ POST ['certificatecopy'])){..}'在首次加载页面时未设置。它只会在你点击按钮后才会设置。 – JYoThI

    +1

    你想做这个客户端 - 使用按钮上的点击事件处理程序。 – CBroe

    +0

    可能与您为此任务使用会话的事实有关。我猜你会在尝试显示会话后设置会话的内容,因此当页面第二次加载时(猜测)加载时。 –

    回答

    0

    你需要在按钮点击事件的客户端做到这一点。

    确认将返回布尔值true或false。基于用户点击。

    $(document).on('click','#certificate',function(){ 
     
    
     
    val = confirm('This will create a new certificate with all properties and links from the original certificate. A certificate user may edit the new certificate properties, but may not delete the certificate. Do you want to create a new certificate?'); 
     
    
     
    alert(val); 
     
    
     
    if(val) 
     
    { 
     
        alert('proceed '); 
     
        return true; 
     
    } 
     
    else 
     
    { 
     
        alert('Dont proceed'); 
     
        return false; 
     
    } 
     
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <form action='details.php' name='copy' method='POST' target='_blank'> 
     
    
     
    <input type='hidden' name='certificate_name' value='$certificate_name'> 
     
        
     
        <input type='hidden' name='certificate_id' value='$certificate_id'> 
     
    
     
    
     
    <input type='submit' name='certificatecopy' id="certificate" value='Certificate Copy'> 
     
    </form>

    更新1:

    <?php 
    print "<script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script>"; 
    print "<form action='details.php' name='copy' method='POST' target='_blank'>"; 
    
    
         print "<input type='hidden' name='certificate_name' value='$certificate_name'>"; 
         print "<input type='hidden' name='certificate_id' value='$certificate_id'>"; 
    
    
         print "<input type='submit' name='certificatecopy' id='certificate' value='Certificate Copy'>"; 
    
    print "</form>" ; 
    
    print "<script> $(document).on('click','#certificate',function(){val = confirm('Do you want to create a new certificate?'); 
    alert(val); 
    if(val) 
    { 
        alert('proceed '); 
        return true; 
    } 
    else 
    { 
        alert('Dont proceed'); 
        return false; 
    } 
    });</script>"; 
    
    ?> 
    
    +0

    上面的示例是警报消息。我必须创建确认框。 –

    +0

    不,这是确认框@SoundaryaE看看我的js代码。 – JYoThI

    +0

    当我尝试上面的代码弹出不会出现 –

    0

    而是在$_SESSION['pop_up']增加的只是echo它:

    if(isset($_POST['certificatecopy'])){ 
    
        echo "<script> 
          ..................... 
          ..................... 
         </script>"; 
    
    +0

    我需要弹出框,因为一旦他们点击确认我会执行另一个功能 –

    +0

    @SoundaryaE你试过我答案? – JYoThI

    +0

    是的,我只是在网页上打印信息 –

    0

    你要问在向服务器发送请求之前对客户端进行确认?

    如果你使用Bootstrap,你可以试试我制作的一个小小的jQuery插件https://github.com/delboy1978uk/bs-delete-confirm。它不需要单独用于删除,只是因为它是最常用的情况而被命名。

    所有你要做的就是添加一个CSS类到你的链接:

    <a href="/wherever" class="confirm">Do stuff!</a> 
    

    和JavaScript:

    $(document).ready(function(){ 
        $('.confirm').deleteConfirm(); 
    }); 
    

    现在,当您点击链接时,JS拦截它,启动自举模式窗口,并在确认后,按照您的超链接。

    你可以通过选择到deleteConfirm()方法太:

    { 
        heading: "Please confirm", 
        body: "Are you sure you wish to perform this action?", 
        ok_text: "Proceed", 
        cancel_text: "Back", 
        log: false 
    } 
    

    希望这有助于!如果你不使用Bootstrap,那么值得加入你的项目是非常值得的!以下是模式功能的链接: https://getbootstrap.com/docs/3.3/javascript/#modals

    +0

    我对此很陌生。如果我在我的代码中添加ajax,那么任何额外添加到我的PHP代码,如图书馆 –

    相关问题