【发布时间】:2016-05-25 18:24:55
【问题描述】:
我使用 jquery ui 弹出一个对话框,并在用户使用我的网站时向他们提出一些问题。用户必须回答该问题。如果没有,用户将无法访问我网站上的任何内容。
但问题是,当用户看到弹出框并且没有回答该问题然后将网址更改为特殊链接或地址栏中我网站的某些链接时,他们不需要回答该问题并可以访问其他页面。
我不想在用户没有回答问题之前访问他们。因此,即使用户将 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>
?>
然后我用include("popup.php")将此文件添加到我的主页(index.php)。
通常,我需要在我网站的每个页面中检查用户是否回答。 但是,这对我来说是个问题,因为我们有很多页面。
我想编写代码以检查用户更改 url 并在popup.php 文件中显示弹出窗口。
那么,即使用户更改了 url,有没有办法显示我的弹出框?
【问题讨论】:
-
告诉我们你做了什么。
-
@Drudge 我已经添加了我所做的,但我想知道的要点是如何在用户回答任何内容之前检查用户是否更改了 URL 到另一个页面,如果他们更改了 URL,我想要在该页面上显示弹出框。我想在
popup.php中完成所有这些程序。有可能吗? -
你怎么知道用户是否给出了答案??
-
@Drudge 对不起,我离开了那部分,因为代码很长。首先,当用户登录时,我检查会话 ID,如果用户没有回答任何问题,我将显示该用户的弹出窗口。如果用户回答(正确或不正确并不重要),我将再次为该用户显示弹出框,回答正确与否。之后,用户可以访问任何内容。