Вызов функции php с помощью ajax / javascript

Хорошо, ребята, я знаю, что этот вопрос задавали раньше, но я очень новичок в PHP и JavaScript и даже не слышал об ajax, пока я не начал искать ответ на этот вопрос, поэтому не понимаю предыдущих ответов.

Я создаю сайт, который по сути представляет собой кучу видео в базе данных SQL, он показывает одно видео за раз, я хотел бы иметь следующую и предыдущую видео кнопки.

Однако я не могу пройти мимо этой ajax вещи, поэтому мой вопрос еще проще. Я посмотрел на этот вопрос / ответ и думаю, что это в значительной степени подводит итог тому, что я спрашиваю:

Как запустить PHP-код, когда пользователь нажимает на ссылку?

Я скопировал этот точный код,

<script type="text/javascript"> function doSomething() { $.get("backend.php"); return false; } </script> <a href="#" onclick="doSomething();">Click Me!</a> 

И в моем файле backend.php я буквально только что получил <?php echo "Hello" ?> Чтобы проверить его, и поэтому я понимаю, что когда я нажимаю на ссылку, запускается событие javascript onClick, которое, в свою очередь, вызывает backend.php файл, который говорит, чтобы напечатать «Hello» на странице. Однако, когда я нажимаю ссылку, она ничего не делает.

В конце концов, очевидно, что им нужно будет намного усложниться с моими php-функциями и вызовами переменных и всего этого, но мне нравится разбираться в себе по большей части, поэтому я узнаю. Однако я застрял на этом бит. Кроме того, в то время как я здесь, я спрошу еще одну вещь, я хочу «отдать» пользователям сайта для ответа на мои вопросы, но я могу только достаточно хорошо поработать в HTML и CSS, чтобы ответить на вопросы других людей, любые советы о том, найдите более простые вопросы, чтобы я мог ответить на некоторые вопросы.

Заранее спасибо 🙂

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

Пример из документации jQuery .get()

Что ты делаешь:

Пример. Запросите страницу test.php, но игнорируйте результаты возврата.

 $.get("test.php"); 

Что ты хочешь делать:

Пример: Ознакомиться с результатами запроса test.php (HTML или XML, в зависимости от того, что было возвращено).

 $.get("test.php", function(data){ alert("Data Loaded: " + data); }); 

Взгляните на документацию .get() . Вы используете его неправильно.

Вы должны передавать данные (необязательно) и обрабатывать данные, которые возвращаются, как минимум:

 $.get("backend.php", { // data passed to backend.php goes here in // // name: value // // format. OR you can leave it blank. }, function(data) { // data is the return value of backend.php // process data here } ); 

Если вы передаете данные, вы можете получить их на backend.php используя $_GET . В этом случае:

 $_GET['name']; 
 $.get("test.php", { name: "John", time: "2pm" }, function(data) { alert("Data Loaded: " + data); }); 

http://api.jquery.com/jQuery.get/

Это предупредило бы данные. прямо сейчас, когда функция возвращает false.

 $.get('backend.php', function(data) { alert(data); }); 

Ваш код не будет печатать на странице так, как вы его настроили; вы являетесь частью этого пути, потому что вы вызвали страницу, но ответ должен быть каким-то образом обработан. Если вы откроете инструменты разработчика в Chrome, вы можете щелкнуть на вкладке «Сеть» и посмотреть запрос и ответ, чтобы убедиться, что то, что вы закодировали, действительно работает, но теперь вам нужно где-то отложить ответ.

Передав функцию в качестве второй переменной в $ .get, вы можете сделать свой запрос на странице. Попробуйте что-то вроде этого:

 $.get("backend.php", function (data) { $('body').append(data); } ); 

Ваш код не обрабатывает эти данные. Поэтому вместо этого вы должны использовать следующий код:

 $.get("backend.php", function(response) { alert(response); }) 

Или, чтобы показать эти данные в пользовательском интерфейсе, назначьте его любому элементу html.

Чтобы узнать больше, перейдите по ссылке : jQuery.get ()