Как я могу изменить свой Ajax для вызова двух файлов с этим кодом? - PullRequest
0 голосов
/ 05 сентября 2011

Я новичок в AJAX и думаю, что понимаю, как это работает.Я создал скрипт формы редактирования профиля с помощью учебника, и он отлично работает, но я также хотел бы, чтобы он перезагрузил включаемый файл php, чтобы изменения автоматически загружались без перехода на другую страницу.

Так что сейчасформа отправлена, она вызывает скрипт php, который я написал, с именем tehloader.php, который вносит изменения в мою базу данных.

Все работает нормально, но я также хотел бы, чтобы он обновлял включаемый файл с именем brain.php, который находится на каждой странице.Этот включаемый файл имеет функцию темы.Так что, если участник изменит цвет темы с помощью редактируемого профиля, я бы хотел, чтобы brain.php обновлялся, чтобы цвет изменился на тот, что изменился в базе данных tehloader.php, когда он нажмет save.мой код.

<script language="JavaScript" type="text/javascript">
function ajax_post(){
var hr = new XMLHttpRequest();
var url = "tehloader.php?load=profile";
var nm = document.getElementById("nname").value;
var cr = document.getElementById("color").value;
var pf = document.getElementById("styled").value;
var tk = document.getElementById("token").value;
var acc = document.getElementById("access").value;
var vars = "nnname="+nm+"&nnnprofile="+pf+"&ncolor="+cr+"&acccess="+acc+"&tokken="+tk;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var return_data = hr.responseText;
document.getElementById("status").innerHTML = return_data;
}
}
hr.send(vars);
document.getElementById("status").innerHTML = "<img src=./ajax-loader.gif>";
}
</script>

Так можно ли это сделать?Благодаря.

1 Ответ

1 голос
/ 05 сентября 2011

Идея вызовов AJAX заключается в том, что серверный вызов происходит в фоновом режиме, а текущая страница не перезагружается, что приводит к более быстрой работе и более динамичным и отзывчивым интерфейсам.

Когда вы получаете возвращаемое значение вызова AJAX, код вызова javascript отвечает за обновление любых элементов пользовательского интерфейса, чтобы отразить изменения, поскольку полная страница не будет перезагружаться.

В вашем случае, насколько я понимаю, вы хотите отразить изменения в настройках темы пользователя. В этом конкретном сценарии вы должны подумать, действительно ли вам нужно поведение AJAX здесь, так как вы по сути хотите обновить всю страницу (с новыми цветами и т. Д.). В зависимости от количества тем и того, как вы их реализуете, вы можете либо обновить пользовательский интерфейс в javascript до новой темы (что может быть утомительно, возможно, загружать CSS на лету и т. Д.), Либо, возможно, рассмотреть возможность просто обновить страницу с полным POST или GET, который будет отображать страницу сервера с новыми настройками темы (поскольку ваш brain.php будет выполнен снова и будет извлекать самые последние данные из базы данных).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...