Я написал форму с использованием ajax, поэтому страница после обновления не обновится. В Chrome и Firefox он работает отлично, проблема возникает, когда я пользуюсь Internet Explorer (пока я проверил только 8,9). В IE8,9 я не могу отправить форму, нажатие на кнопку отправки не запускает какое-либо событие, как и должно быть. Вот код, который я использую, я хотел бы пояснить, что я написал код PHP и AJAX в том же файле из-за требований моего босса
if($_POST['isRadial']){ if(($_POST['redialVal']) && ($_POST['waitVal'])&& ($_POST['userId']) ){ $redial = $_POST['redialVal'] ; $wait = $_POST['waitVal']; $userId = $_POST['userId']; $error_message = "123Could Not Save Settings, Please Try Again."; $success_message ="Settings Were Updated Successfully, Will Be Implemented In 10 Minutes"; $query = mysql_query("...."); $getAll = mysql_query("..."); if(mysql_num_rows($getAll)>0){ $query = mysql_query("...'"); } if(!$query){ echo $error_message; return false; } else echo $success_message; //Update pull_tables file_put_contents("....); } else echo "</br>An Error Occured.Please Save Settings Again123.</br>"; }
Код Ajax:
$(function(){ $('#submitRedialWait').click(function(){ var redial = $("#redialSettings").val(); var wait = $("#waitSettings").val(); //var userData = $("#ui").text(); var userData=<?php echo $IDuser; ?>; $.ajax({ url: '' , type: 'POST', data: {redialVal: redial , waitVal : wait, userId :userData, isRadial:"yes"}, success: function(result){ // $('#RedialWaitResults').text(result) ; alert('settings have been saved.'); } }); return false; }); });
Вы хоть представляете, что моя причина? (кроме существующих IE)
Любое предложение было бы полезно, спасибо заранее
Когда я работал с AjaxForm для файлов, представляющих асинхронно, я нашел 2 интересные вещи.
Во-первых, чтобы получить ajaxform для работы с перекрестным браузером (IE 7+, chrome, firefox), вы должны убедиться, что используете метод submit ajaxform, то есть примерно так:
$('form').ajaxForm({ success: ..., error: ... }).submit();
Второе удивило меня. AjaxForm работал повсюду, включая IE 7 и 9, но он не работал на IE 8. Причина в том, что я забыл метод att = POST. Итак, вы должны убедиться, что у вас есть что-то вроде этого:
<form action="/action.php" method="POST">...
При использовании ajax ajax будет работать в фоновом режиме. Вы должны делать то, что хотите от успеха / ошибки запроса ajax, он ничего не сделает сам.
Если вы просто хотите перезагрузить страницу после успеха. Просто позвони
document.location.reload(true);
или что вы хотите …
ИЛИ
Показывать сообщение и перезагружать окно через некоторое время, используя setTimeOut
setTimeout(function(){document.location.reload(true)},3000);
после alert('settings have been saved.');
в вашем коде.