我遇到了ajax的问题,因为它只发送一次我的请求,我有一个cssmap插件,而且该插件有onSecondClick选项,这使我能够在我点击两次时执行某些操作,我的帖子请求发送一些数据到session.php,在session.php我删除会话,然后我再放一个。
js行:
'onSecondClick' : function(e){
var regionName = e.children("A").eq(0).text(),
regionHref = e.children("A").eq(0).attr("href"),
regionClass = e.attr("class").split(" ")[0];
if(regionClass == "eu13" || regionClass == "eu16" || regionClass == "eu47"){
//open model success
$.ajax({
type: "POST",
url: 'session',
data: { country : regionClass },
cache: false,
success: function(data){
$( "#success" ).click();
}
});
//$( "#success" ).click();
}else{
//open model error
$( "#error" ).click();
}
},
PS - 网址是正确的,即文件的网址,会话已设置,但只有一次且不会更新。
session.php文件:
if(Input::get('country')){
$countries = array(
'eu13' => 'france',
'eu16' => 'germany',
'eu47' => 'united kingdom',
//end of playable countries, the rest is bots!
'eu5' => 'belgium',
'eu27' => 'luxembourg',
'eu33' => 'netherlands',
'eu44' => 'switzerland',
'eu20' => 'ireland'
);
if(Session::get('selected');){
Session::delete('selected');
}
Session::put('selected',$countries[Input::get('country')]);
}
在成功之后,我点击一个按钮,打开一个"模型"来自Bootstrap。
一切正常,但会话总是返回上一个点击的国家/地区,无论我点击其他国家/地区多少,它都不会改变。
我不知道问题是什么,尝试了e.preventdefault(),cache:false以及其他一些选项,似乎无法解决它。
答案 0 :(得分:0)
很难说出你的描述问题在哪里,但如果是关于演示文稿(即你可以验证session.php是否能完成它的工作,但模态仍然提供了错误的信息),这可能是原因。
默认情况下,Bootstrap模式仅填充内容一次。之后,它将使用.toggle来显示或隐藏。
如果您想更新信息,则必须先清除它:
$('body').on('hidden.bs.modal', '.modal', function () {
$(this).removeData('bs.modal');
});
当隐藏/关闭时,这将清除类modal
的模态中的任何内容。您当然也可以使用ID选择器,例如#myModal
。
编辑:
试试这个ajax。警报返回了什么?
$.ajax({
type: "POST",
url: "session",
data: { "country": regionClass },
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
cache: false,
success: function(data){
alert(data);
$("#success").click();
}
});
并在session.php:
的末尾添加这样的内容echo $countries[Input::get('country')];
(php不是我真的。我认为这是正确的)