Загрузить php файл в javascript (AJAX или других) - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь завершить sh одну страницу моего сайта за последние пару часов при достижении следующего.

  • При нажатии на кнопку должно произойти следующее
  • Ссылка на скачивание появляется (сделано - работает)
  • Таблица mySQL должна быть открыта и счетчик должен быть увеличен

Насколько я получил очки. Javascript не может справиться с этим, и поэтому мы можем использовать AJAX или jQuery. Я уже проверял различные посты и веб-сайты, такие как:

и многое другое. Однако, я предполагаю, что у меня действительно есть проблемы с синтаксисом AJAX, и я фактически не знаю, загружены / открыты запрошенные php файлы или нет. Особенно вторая ссылка, приведенная выше, почти аналогична тому, что я ищу. Однако это не работает. Чтобы проверить, вызывается ли файл php, я установил предупреждение, которое срабатывает, если я вызываю файл явно в браузере. Может быть, это не работает с AJAX, как я ожидаю. Вот код, чтобы лучше ознакомиться с несоответствием, которое я делаю.

Код страницы:

<?php
    echo '<div><button onclick="incrementAndDownload('testPath', 'fileName'); ">Click me</button></div>';
?>

<script>
function incrementAndDownload (link, fileName)
{
   $.ajax({
       url: 'openfoam/increment.php',
       success: function(data) {
           // Print something if necessary
       }
   });

   //- Open the link
   // window.open(arguments[0], "_blank");

   //- Increment download inside mysql
   //var xhttp;
   //xhttp = new XMLHttpRequest();
   //xhttp.open("GET", "openfoam/increment.php?foo=nana", true);
   //xhttp.send();
}
</script>

Приращение. php выглядит следующим образом:

<?php                                                                           

    echo '<script type="text/javascript" language="Javascript">                     
    alert("Test message if the script is called...");                                           
    </script>';

    // Code for accessing the mysql database and manipulate the data
    //$page_id = mysql_real_escape_string(html_entities($_POST['file']));                                           

?>  

Теперь, когда я нажимаю кнопку, выполняется javascript (например, если я раскомментирую window.open), это работает, как и ожидалось. Однако, как уже было сказано, вторая часть заключается в открытии базы данных с помощью php и увеличении число (счетчик). По какой-то причине я не могу выяснить, где находится проблема. Я даже не уверен, что AJAX открывает файл increment.php (предупреждающие сообщения никогда не появляются, поэтому я полагаю, что никогда называется). Любое предложение приветствуется, и я надеюсь, что этот вопрос не просто содержит фундаментальную небольшую ошибку. Заранее спасибо, Тоби

1 Ответ

1 голос
/ 13 апреля 2020

Это не так, как работает AJAX. Если вы позвоните alert() на странице назначения, она не будет отображаться в вашем браузере. Ваш случай очень базовый c, поэтому я оставлю свое решение на базовом уровне c.

В increment.php просто повторяем что-то, это может быть просто OK строка. Поэтому, когда вы откроете страницу go на increment.php, вы увидите только ОК, не более, не менее.

Затем go вернитесь к своему javascript и проверьте свой ответ.

   $.ajax({
       url: 'openfoam/increment.php',
       success: function(data) {
           if (data == 'OK') {
             console.log('It works, sir!');
           }
       }
   });

Если вы не видите сообщение в консоли после этих изменений, что-то не работает. Тем не менее, я думаю, что ваша страница выполнена правильно, но вы просто не получаете обратную связь, потому что вы не обрабатываете ответ (параметр данных в вашем случае).

Проверьте это и не забудьте оставьте отзыв! 101

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