Обновление URL для синтаксического анализа XML в PHP

Я пытаюсь понять, как обновить URL-адрес, который я использую для синтаксического анализа XML (используя simplexml_load_file()).

Существует button, у которого есть $productid, который назначается ему пользователем при добавлении своего шорткода [show_cart_button productid=#].

//code for the button input that gets called    

function print_add_cart_button($productid, $atts = array()) {
   //some other form code for the button

   $replacement .= '<input type = "hidden" name"cart_product" value"' . $productid . '"/>';
  return $replacement;
}

Это function, который я использую для отображения и вызова информации о продукте:

function show_shopping_cart_handler($atts) {
   if (isset($_POST['cart_product'])) {
      $id = "&PRODUCTID = " . $_POST['cart_product'];
    // uses the input name from the button
   }

   $url = "https://secure.bmtmicro.com/cart?CID=2/WP" . $id;
   
   $xml = simplexml_load_file($url) or die("error.");

   foreach ($xml->producttable->row as $product) {
      $output .= '<span>' . $product->productname . '</span>';
   }

   return $output;
}

Чтобы URL-адрес работал правильно, в конце URL-адреса должен быть добавлен &PRODUCTID=(product#). Например, если вы нажмете две разные кнопки, URL-адрес должен выглядеть следующим образом: https://secure.bmtmicro.com/cart?CID=2/WP&PRODUCTID=1&PRODUCTID=2 (очевидно, 1 и 2 должны отображать номер кнопки $productid).

Как вы должны видеть из моего кода выше, каждый раз, когда нажимают на button, он просто перезаписывает URL-адрес и отображает этот один продукт вместо добавления нового в список. Я попытался установить simplexml_load_file() в foreach(), но при нажатии кнопки не отображались никакие продукты. Кто-нибудь знает, как я могу заставить этот URL-адрес обновляться / работать должным образом?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
107
1

Ответы 1

Каждый раз

 if (isset($_POST['cart_product'])) {
      $id = "&PRODUCTID = " . $_POST['cart_product'];
    // uses the input name from the button
   }

Вызывается перезапись $ id. Вам нужно получить любые существующие значения для URL-адреса.

Вам нужно будет получить все текущие значения ($ _GET ['cart_productions']), бросить их в массив, захватить новый пост, добавить его в массив и добавить все к ним URL с помощью http_build_query () .

Другие вопросы по теме