Две функции в одном вызове
Я хотел бы знать, возможно ли сделать что-то подобное:
x$().xhr('<?php echo $this->createUrl('survey/index', array('id'=>$model->skey)); ?>', {
method: 'POST',
async: true,
data: urlstringserialize(serialize(document.getElementById("token-form"))),
callback: function() {respOK(this.responseText);}
});
x$().xhr('<?php echo $this->createUrl('survey/saveBrowser', array('id'=>$model->skey,'browser'=>$browser->getBrowser(),'platform'=>$browser->getPlatform())); ?>', {
method: 'POST',
async: true,
data: urlstringserialize(serialize(document.getElementById("token-form"))),
callback: function() {respOK(this.responseText);}
});
Мне нужно вызывать две разные функции контроллера, одну за другой. Таким образом, выполняется только первый.
2 ответа
Если вы хотите выполнить второй запрос после первого, вам просто нужно сделать запрос внутри обратного вызова.
x$().xhr('<?php echo $this->createUrl('survey/index', array('id'=>$model->skey)); ?>', {
method: 'POST',
async: true,
data: urlstringserialize(serialize(document.getElementById("token-form"))),
callback: function() {
respOK(this.responseText);
x$().xhr('<?php echo $this->createUrl('survey/saveBrowser', array('id'=>$model->skey,'browser'=>$browser->getBrowser(),'platform'=>$browser->getPlatform())); ?>', {
method: 'POST',
async: true,
data: urlstringserialize(serialize(document.getElementById("token-form"))),
callback: function() {respOK(this.responseText);}
});
});
Проблема только с первым вызванным может зависеть от используемой вами библиотеки, которая выглядит как "x$".
function respOK(data) {
<?php if($browser->getBrowser() == Browser::BROWSER_IE) { ?>
<?php if($campaignCenter->campaign_id == 326) { ?>
x$("style").remove(".type");
<?php } ?>
x$('div.surveyform').html(data);
<?php } else { ?>
<?php if($campaignCenter->campaign_id == 326) { ?>
x$("style").remove(".type");
<?php } ?>
x$('div.surveyform').tween({opacity:0, duration: 200}, function() {x$('div.surveyform').html(data); x$('div.surveyform').tween({opacity: 1, duration: 200});});
<?php } ?>
}