我使用jquery ui创建一个弹出对话框,并在用户使用我的网站时向用户提出一些问题。用户必须回答这个问题。如果没有,用户无法访问我网站上的任何内容。
但问题是,当用户看到弹出框并且没有回答该问题然后将网址更改为地址栏中的特殊链接或我网站的某些链接时,他们不需要回答该问题并且可以访问其他页面。
我不想在他们不回答问题之前访问用户。因此,即使用户将网址更改为其他网页,我也希望显示我的弹出框。
我在popup.php
页面中提出了这个弹出式问题。这是我的代码。
<?php
....//another code
....//check user session id and show dialog
...
...
echo "<div id='dialog'>";
echo "Question"."<br/>";
//select random answer for related question from database
$sql = "...get answer for question...";
$query = .....;
while($row = mysql_fetch_array($query)){
$a_id = $row['id'];
$answer = $row['name'];
echo "<input type='radio' value=\"$a_id\" name='answer' class='answer'>$answer <br/>";
}
echo "</div>";
.....
.....
<scirpt>
$("#dialog").dialog({
autoOpen:true,
width: 500,
modal: true,
resizable:false,
draggable:true,
position: {my: 'center', at: 'center', of: window, collision:'fit'},
open: function (event, ui) {
$('.ui-dialog').css('z-index',1100);
$('.ui-widget-overlay').css('z-index',1000);
$("#btn_submit").button("disable");
},
create: function(event, ui) {
$("body").css({ overflow: 'hidden' });
},
buttons: {
Submit: {
text : "Submit",
id : "btn_submit",
click:function() {
......//another code
$( this ).dialog( "close" );
$.ajax({
type:'POST',
dataType:'json',
url:'check_question.php',//this is check for user answer is correct or not
data:{..//some data....},
success: function(data){
alert("success");
},
error: function () {
alert("Error");
}
});
}
}
}
});
</scirpt>
?>
我使用include("popup.php")
将此文件添加到我的主页(index.php)。
通常情况下,我需要在我网站的每个页面中检查用户是否回答。 但是,这对我来说是一个问题,因为我们有很多页面。
我想编码检查用户更改网址并在popup.php
文件中显示弹出窗口。
那么,即使用户更改了网址,有没有办法显示我的弹出框?
答案 0 :(得分:0)
首先,我采用当前页面$current_page="http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
。
当用户请求popup.php
时,将当前页面添加到会话并检查页面表单会话是否相同。
我希望对某人有帮助。