Intereting Posts
загрузить изображение php с помощью src Удаление значений с более чем двумя десятичными знаками в массиве Значения флажка в запросе mysql Устранение неполадок процессов PHP Регулярное выражение соответствует словам или фразам в строке, но НЕ совпадает с частью URL или внутри тегов <a> </a>. (РНР) Распаковка нагрузки в соответствии со значением другого раскрывающегося списка – без обновления страницы в PHP Получение размера в памяти объекта в PHP? Получение непрочитанной почты из веб-сервисов обмена через PHP Форма обратной связи PHP – Хотите остаться на моем сайте после отправки Как мне группировать по месяцам и годам, когда у вас есть только поле даты? Yii2 – Вызов команды консоли Yii из другой команды консоли? Какова наилучшая практика отправки писем из PHP-скрипта? CodeIgniter – Ошибка MySQL 1064 (Обновить таблицу1 внутреннее соединение table2 (…)) подключение веб-сервисов PHP с Android CSS не загружается на одном из моих маршрутов / представлений

Как обновить базу данных mysql без перезагрузки страницы

спасибо, что посмотрели. У меня очень длинный список элементов, пользователи нажимают на изображение (знак плюса), чтобы добавить элемент в свой личный список. В тот момент, когда они нажимают +, он загружает «add-item.php? Itemid = *», который обрабатывает код ниже, а затем перенаправляет их в свой собственный список, я перенаправлял его обратно в глобальный список, но потом было неясно пользователю, если элемент был добавлен в их список. как бы я решил сделать все это, обновив базу данных, никуда не денусь, я думаю, javascript, но никогда не писал. Любая помощь будет блестящей! 🙂

<?php ini_set('display_errors', 'On'); error_reporting(E_ALL); $bucketlist=MYSQL_QUERY( "SELECT * FROM membersbuckets where userid = $userid AND bucketid = $bucketid") or die(mysql_error()); $bucketlist=mysql_fetch_array( $bucketlist ) ; if($bucketlist < 1) { mysql_query("INSERT INTO membersbuckets (memberbucketid, userid, bucketid, complete) VALUES ('', '$userid', '$bucketid', '0')"); echo "Adding item to your bucketlist..."; echo "<meta http-equiv='Refresh' content='2; URL=mybucketlist.php'/>"; } else { echo "This item is already on your list, redirecting you to your list"; echo "<meta http-equiv='Refresh' content='2; URL=mybucketlist.php'/>"; } ?> 

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

Вам нужен AJAX, как и все из них. Поскольку вы никогда не писали ни одного javascript, вот полное руководство для вас –

  • Вместо <a href="add-item.php?itemid='.$itemId.'" > Add Item </a> напишите <a onclick="addItemToUsersList('.$itemId.')" > Add </a>

  • Для использования AJAX используйте jquery, как предложил Angelo. Загрузите его и добавьте следующее

     <script type="text/javascript" src="http://path/to/jquery-latest.min.js"></script> <script type="text/javasript"> function addItemToUsersList(itemId) { $.ajax({ 'url': 'path/to/add-item.php', 'type': 'GET', 'dataType': 'json', 'data': {itemid: itemId}, 'success': function(data) { if(data.status) { if(data.added) { $("span#success"+itemId).attr("innerHTML","Item added to your personal list"); } else { $("span#success"+itemId).attr("innerHTML","This item is already on your list"); } } }, 'beforeSend': function() { $("span#success"+itemId).attr("innerHTML","Adding item to your bucketlist..."); }, 'error': function(data) { // this is what happens if the request fails. $("span#success"+itemId).attr("innerHTML","An error occureed"); } }); } </script> 
  • И, наконец, в вашем path/to/add-item.php файл напишите код, чтобы добавить элементы. Параметр itemId будет доступен здесь как $_GET['itemId'] . Ju st возвращает правильные значения состояния, используя json_encode –

     if($bucketlist < 1) { mysql_query("INSERT INTO membersbuckets (memberbucketid, userid, bucketid, complete) VALUES ('', '$userid', '$_GET['itemId]', '0')"); return json_encode(array("status" => true, "added" => true)); } else { return json_encode(array("status" => true, "added" => false)); } 

Вы достигнете этого с помощью JavaScript, используя что-то, называемое «AJAX». Асинхронный запрос JavaScript и XML позволяет JavaScript отправлять запрос на другую страницу и получать от нее результаты.

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

Я использую библиотеку jQuery, чтобы получить что-то подобное

 $.ajax({ 'url': 'path/to/add-item.php', 'type': 'GET', 'dataType': 'json', 'data': {itemid: xx}, 'success': function(data) { // what happens if the request was completed properly }, 'error': function(data) { // what happens if the request fails. } }); 

Обратите внимание, что только потому, что запрос завершен правильно, не означает, что элемент был добавлен по мере необходимости.

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

http://json.org/

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

http://ca3.php.net/json_encode

http://jquery.com/ были бы моими предложениями. Вам нужно будет выполнить некоторые вызовы AJAX на сервере, чтобы они взаимодействовали с вашей БД, а затем вернуть результат и отобразить эту информацию для пользователя. Я предпочитаю JQuery, поскольку он упрощает многие из этих вызовов, а документация для него довольно хорошая. Для основ существуют тонны учебников.

Простой поиск в Google показывает довольно много http://www.google.com/search?q=jquery+ajax+tutorial

Вы действительно можете использовать Javascript в своем проекте! Смотрите, потому что вы говорите, что не хотите перейти от текущей страницы и хотите дать небольшое сообщение на текущей странице с подтверждением пользователю. Тогда вам нужно использовать что-то, называемое AJAX-асинхронным Javascript и XML , Это добавление PHP и Javascript.

Использование AJAX u позволяет обновлять загруженную страницу без обновления. Здесь HTML не связывает или не запрашивает сервер, а его Javascript. Следовательно, вы можете достичь -> [как бы я хотел сделать все это обновление базы данных, не идя никуда].

И насколько это касается AJAX и Javascript, они очень простые! Просто нужно изучить базовый синтаксис из них, и den on u может пойти дальше !!!

ссылки u могут ссылаться на:

-> Самая лучшая книга для u для того чтобы соотвествовать –

Профессиональный Аякс Николас К. Закас, Джереми МакПак, Джо Фосетт