2016-07-01 6 views
0

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

<?php 

if(!isset(get)){ 
    header("Location: newPage"); 
} else { 
    echo "data"; 
} 

<body> 
    <button onclick="callAjax(a,b)"></button> 
</body> 
<script> 
function callAjax(a,b) { 

    $.ajax(url:'pagea.php',type:'',data:'',success: function(){alert('success')}) 

} 
</script> 

Эта страница вызываются другой страница с параметром GET, поэтому, если нет значения прибудет, он будет перенаправлен на «NEWPAGE». Одна из кнопок на этой странице должна вызывать функцию javascript onclick. Эта функция выполняет вызов ajax, и я также получаю сообщение об ошибке «success». Но после этого страница перенаправляется на «newPage». Насколько я понял, после ajax-вызова элемент управления должен вернуться к кнопке, где функция была вызвана без перезагрузки этой страницы. Но похоже, что эта страница перезагружается и перенаправляется на «newPage» из-за отсутствия параметра get.

Я хочу увидеть ту же страницу после завершения функции callAjax с значениями, полученными изначально. Может ли кто-нибудь объяснить мне, что здесь не так?

спасибо.

+2

'' – Rayon

+0

Спасибо Район. Кавычки находятся в моей реальной программе. Как уже упоминалось, это всего лишь скелет моей программы. Сейчас отредактирует. – Malathy

+1

'if (! Isset (get)) {' looks fisshy. не так ли? –

ответ

0

Прежде всего, в этом коде есть недостатки. Особенно isset(get), отсутствие закрытия <?php кронштейн и т. Д.

Этот код не должен работать так, как есть. И даже если это произойдет, вызов AJAX должен NOT перезагрузить страницу в этом случае.

Это поможет, если вы сможете предоставить весь исходный код.

Я написал этот код, чтобы попытаться воспроизвести вашу проблему:

<?php 

if(!isset($_GET['test'])){ 
    header("Location: newPage.php"); 
} else { 
    echo "data"; 
} 
?> 

<body> 
    <button type="button" onclick="callAjax(1,2)">Click me</button> 
</body> 
<script src="https://code.jquery.com/jquery-3.0.0.min.js" integrity="sha256-JmvOoLtYsmqlsWxa7mDSLMwa6dZ9rrIdtrrVYRnDRH0=" crossorigin="anonymous"></script> 
<script> 
function callAjax(a,b) { 

    $.ajax({ 
     url: 'get.php', 
     data: {}, 
     success: function() { alert('success'); } 
    }) 

} 
</script> 

я попадаю, когда я не предоставлю параметр test в URL, но не при нажатии на кнопку, даже когда предупреждение шоу вверх.

+0

Спасибо за ваши усилия Хьюго! Моя проблема решена. Пожалуйста, проверьте мой ответ. Я попытаюсь сохранить код кода скелета чистым при публикации в будущем. Спасибо за упоминание ошибок. – Malathy

0

Благодарим за все время, анализируя этот код. Ошибка была связана с тегом, поскольку браузер рассматривает действие отправки и перезагружает страницу. Когда это было заменено на <input type=button>, ошибка была решена, поэтому при вызове ajax не было перезагрузки.

Еще раз спасибо за все ваши усилия.

+0

В этом вопросе нет '

' ', поэтому для кода, который не может быть причиной. – Quentin

+0

Его истинный @Quentin, что в моем коде нет . Но единственное изменение в моем коде, чтобы избежать его перезагрузки, заключалось в замене

+0

Это не может изменить ситуацию, если нет формы. – Quentin

Смежные вопросы