即使用户将 url 更改为另一个页面,如何显示弹出框?
How to show popup box even if user change url to another page?
我用 jquery ui 制作了一个弹出对话框,并在用户使用我的网站时向他们提出一些问题。用户必须回答该问题。否则,用户将无法访问我网站上的任何内容。
但问题是,当用户看到弹出框而不回答该问题时,将地址栏中的 url 更改为特殊 link 或我网站的某些 link,他们不会只需回答该问题即可访问其他页面。
我不想在用户未回答问题之前访问他们。所以,即使用户将 url 更改为另一个页面,我也想显示我的弹出框。
我在 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>
?>
然后我将此文件添加到我的主页(index.php) include("popup.php")
。
通常,我需要在我网站的每个页面上检查用户是否回答。
但是,这对我来说是个问题,因为我们有很多页面。
我想编写代码以检查用户更改 url 并在 popup.php
文件中显示弹出窗口。
那么,即使用户更改了 url,有什么方法可以显示我的弹出框吗?
首先,我把当前页面变成这样$current_page="http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
。
并在用户请求时将当前页面添加到会话并检查页面表单会话是否相同 popup.php
。
希望对大家有所帮助。
我用 jquery ui 制作了一个弹出对话框,并在用户使用我的网站时向他们提出一些问题。用户必须回答该问题。否则,用户将无法访问我网站上的任何内容。
但问题是,当用户看到弹出框而不回答该问题时,将地址栏中的 url 更改为特殊 link 或我网站的某些 link,他们不会只需回答该问题即可访问其他页面。
我不想在用户未回答问题之前访问他们。所以,即使用户将 url 更改为另一个页面,我也想显示我的弹出框。
我在 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>
?>
然后我将此文件添加到我的主页(index.php) include("popup.php")
。
通常,我需要在我网站的每个页面上检查用户是否回答。 但是,这对我来说是个问题,因为我们有很多页面。
我想编写代码以检查用户更改 url 并在 popup.php
文件中显示弹出窗口。
那么,即使用户更改了 url,有什么方法可以显示我的弹出框吗?
首先,我把当前页面变成这样$current_page="http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
。
并在用户请求时将当前页面添加到会话并检查页面表单会话是否相同 popup.php
。
希望对大家有所帮助。