Итак, это «работает» так же, как вбивание винта. Он будет там, но не совсем так, как вы хотите.
Не используйте тег script для запуска страницы php . Ваша страница сработает, но это неправильный инструмент для выполнения работы. Вы хотите использовать AJAX. AJAX был специально создан для этой цели, в то время как тег скрипта предназначался для запуска скриптов на странице. Он попытается получить содержимое addtofavorites.php
, но будет ожидать JavaScript в качестве возврата. И вы не сможете использовать $_POST
, поскольку у вас нет возможности отправить данные в запрос.
Вместо этого используйте AJAX. Если вы уже используете библиотеку JavaScript, то у нее будет хорошая оболочка AJAX для вас (я не знаю ни одной библиотеки, которая бы не была в моей голове). Вы можете проверить документацию API для данной библиотеки для документации по использованию функциональности AJAX ( jQuery , Prototype.js , Mootools и т. Д.) .
В качестве примера я буду использовать jQuery, потому что он один из самых популярных. Вот запрос с использованием jQuery на вашу страницу (и то, что выглядит ожидаемыми переменными)
// Call an AJAX function to the proper page
$.ajax("php/addtofavorites.php", {
// Pass our data to the server
data: { "get" : "runfunction", "action" : "favorites1" },
// Pass using the appropriate method
method: "POST",
// When the request is completed and successful, run this code.
success: function (response) {
// Successfully added to favorites. JS code goes here for this condition.
}
});
Также, как примечание, каждая строка в PHP нуждается в точке с запятой ;
в конце. Многие из вас этого не делают. И в 3-й строке отсутствует открывающая скобка {
, хотя я не уверен, является ли это просто артефактом вашей копии или нет.
Добавление
Я бы рекомендовал использовать jQuery для прослушивания событий. API events для jQuery позволит вам прослушивать события на объектах. Итак, как-то так:
<input id="button_1" type="button" value="favorites1" />
и JQuery
$(document).ready(function () { // Make sure the elements are loaded on the page
// Listen for a click event on the button
$('#button_1').click(favfunct);
});
// Now define the function
function favfunct(e) {
// Stop the page from "following" the button (ie. submitting the form)
e.preventDefault();
e.stopPropagation();
// Insert AJAX call here...
}