2016-09-26 79 views
-1

我使用javascript创建了一个弹出窗口(模式),它警告人们我们在我们的网站上使用cookie。 点击时有一个接受按钮应创建一个持续60天的cookie并阻止显示模式。但是当我点击按钮,我得到一个错误,说我不能修改标题,因为它已经发送。Cookie和模式错误

模态JavaScript是从w3schools和作品,但我的浏览器得到一个错误“无法设置属性'空'onclick'为空”。

继承人的代码:

<?php 
    $cookie_name = "V3-cookies"; 

    if(!isset($_COOKIE[$cookie_name])) { 
    include $_SERVER["DOCUMENT_ROOT"] . "/etc/cookie.php"; 
    } else {} 
?> 

这是/etc/cookie.php:

<form id="modal" method="post" action=""> 
     <div class="modalconent tabs"> 
      <fieldset> 
      <span class="close">×</span> 
       <h2 class="fs-title">Cookies</h2> 
       <h3 class="fs-subtitle">We use cookies to improve your experience</h3> 
       <iframe style="width:100%; height:80px;" src="/etc/txt/cookies.php" ></iframe><br /> 
       <input type="submit" name="cookie" value="Accept" class="btn fr" style="width:20%;" /> 
      </fieldset> 
     </div> 
    </form> 
    <?php 
     if(isset($_POST['cookie'])){ 
     $cookie_name = "V3-cookies"; 
     $cookie_value = "V3-cookies"; 
     setcookie($cookie_name, $cookie_value, time() + (86400 * 60)); // 86400 = 1 day 
     }else{} 
    ?> 


    <script> 
    window.onload = function() { 
     document.getElementById('button').onclick = function() { 
      document.getElementById('modal').style.display = "none" 
     }; 
    }; 





    // Get the modal 
    var modal = document.getElementById('modal'); 

    // Get the <span> element that closes the modal 
    var span = document.getElementsByClassName("close")[0]; 

    // When the user clicks on <span> (x), close the modal 
    span.onclick = function() { 
     modal.style.display = "none"; 
    } 

    // When the user clicks anywhere outside of the modal, close it 
    window.onclick = function(event) { 
     if (event.target == modal) { 
      modal.style.display = "none"; 
     } 
    } 
    </script> 

的JavaScript错误的位置属性 '点击数' 为空这里 (第二线)

window.onload = function() { 
     document.getElementById('button').onclick = function() { 
      document.getElementById('modal').style.display = "none" 
     }; 
    }; 

头php的错误我不知道出了什么问题。

所以总共有2个问题。 1.我怎样才能修复PHP设置按钮点击cookie? 2.如何删除onlick为空的浏览器错误? (2.是不是真的那么重要,只是我讨厌有错误)

+0

您需要重新组织您的PHP代码,以便在页面之前发送HTTP标头,而不是在HTML中间发送。这与JavaScript无关。 –

+0

嗯,你甚至有一个可点击的元素与id #button? – ravb79

+0

@ ravb79编号的JavaScript是从W3被采取的,我说它的工作。但是我得到了一个错误,真正的问题是PHP,在接受按钮被按下时,我无法设置cookie。 –

回答

0

我已经通过添加另一个页面,我设置cookie来解决问题。所以来自cookie.php的<form>将是<form actio="/etc/set_cookie.php" method="post">set_cookie.php我使用与以前相同的php脚本。

我发布了这个答案,让人们知道将来。