javascript
  • php
  • html
  • popup
  • 2017-08-24 29 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代碼,如圖書館 –

    相關問題