Сообщение Ajax не возвращается на страницу, с которой было отправлено сообщение

#javascript #php #jquery #ajax #checkbox

#javascript #php #jquery #ajax #флажок

Вопрос:

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

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

Код для флажков.

 echo "<form id='assign' method ='post'  action='../../assign_engineer_post_code.php'>";
echo "<input type='checkbox' checked name='select-all' id='select_all' />Select All<br/><br/>";
echo "<p style='font-size: 10px; '>";
while($row = mysqli_fetch_assoc($res)){
    echo "<input type='checkbox' class='checkbox' name='engineers[]' value='".$row['Engineer_id']."' checked><label for='" .$row['Engineer'] ."'>" .$row['Engineer'] ."</label>"; 

        echo "amp;nbsp;amp;nbsp;amp;nbsp;";
        $counter  ;
        if ($counter == 8){
        //echo "<br/>";
        } 
}
echo "</p>";
?>
<table><tr>
<td>
<button type="button" onclick="clear_sap_data()">Clear Data</button>
</td>
<td>
<button type="button" onclick="import_sap_data()">Import SAP Data</button> 
</td>
<td>
<!-- <input name="confirm" type="button" value="Assign Engineers" onclick="doit();" /> 
<input id="submit" type="submit" name="submit" value="Submit" onclick="submitForm()" /> -->
<input id="submit" type="submit" name="submit" value="Submit" onclick="submitForm()" />
</td>

</tr>
</table>
</form>
  

Скрипт, называемый submitForm, выглядит следующим образом

 <script>
function submitForm() {
var form = document.assign;

var dataString = $(form).serialize();


$.ajax({
    contentType: false,
    processData: false
    type:'POST',
    url:'../../assign_engineer_post_code.php',
    data: dataString,
    success: function(data){
        window.location.reload(); // This is not jQuery but simple plain ol' JS

    }
});
return false;
}
</script>
  

Вызванный php-файл выполняет то, что должен делать, но он не возвращается на вызывающую страницу и в окно ajax.location.reload() не вызывается.

С уважением

Алан

Комментарии:

1. После завершения работы ajax почему вы пытаетесь перезагрузить страницу? Какой смысл использовать Ajax тогда вместо простой отправки формы?

2. Какая-либо ошибка в консоли? также вместо url:'../../assign_engineer_post_code.php', указания полного пути к файлу там.это:- .../.../ не понятно для ajax там. Также почему страница обновляется при использовании AJAX. если это так, то выполните отправку в обычной форме. Почему так много сложностей?

3. Привет, Киншук, причина, по которой мне нужно обновить страницу, заключается в том, что есть phpgrid (phpgrid.com ) на моей странице и в файле php под названием обновляется база данных, с которой связана сетка. Итак, мне нужно вызвать php-файл, обновить таблицу базы данных, и мне нужно обновить вызывающую страницу. С уважением, Алан

Ответ №1:

   $(document).ready(function () {
  function reload() {
    $("#content").load("notification.php");
  }
  setTimeOut(reload, seconds*1000)
}
  

используйте это для перезагрузки страницы

 success: function(data){
   if(data.success == true){ // if true (1)
      setTimeout(function(){// wait for 5 secs(2)
           location.reload(); // then reload the page.(3)
      }, 5000); 
   }
}