Как перенести определенное значение с одной страницы на другую? - PullRequest
0 голосов
/ 12 июня 2019

У меня есть две страницы, первая называется store.php, а другая cart.php.Я пытаюсь перенести общее количество строк из таблицы со страницы cart.php на страницу store.php, где у меня есть значок корзины, и я поставил количество продуктов над ней.Моя идея заключалась в том, чтобы с помощью javascript подсчитать все строки в таблице и разместить ее на значке корзины.Проблема в том, что я не могу получить значение всех строк со страницы cart.php внутри store.php.

<html>

    <head>
        <link rel="stylesheet" type="text/css" href="main.css">

        <title>store</title>

        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
        <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.1/css/all.css">

        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>

    </head>

    <body>

            <div class="Cart">

                <a href="cart.php">

                    <i class="fa fa-shopping-cart" aria-hidden="true"></i>

                    <span class="Cart_Number" id="Cart_Number"></span>

                </a>

            </div>

        <script type="text/javascript" src="Counter_Cart.js"></script>

    </body>

</html>
<html>

    <head>
        <link rel="stylesheet" type="text/css" href="main.css">

        <title>cart</title>

        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
        <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.1/css/all.css">

        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>

    </head>

    <body>

            <table style="width:100%" id="Product_Map">
                <tr>
                    <th>Product name</th>
                    <th>Quantity</th> 
                    <th>Price</th>
                </tr>
                <tr>
                    <td>Product 1</td>
                    <td>Product 1</td>
                    <td>Product 1</td>
                </tr>
                <tr>
                    <td>Product 2</td>
                    <td>Product 2</td>
                    <td>Product 2</td>
                </tr>
                <tr>
                    <td>Nothing</td>
                    <td>Nothing</td>
                    <td>Total</td>
                </tr>
            </table>

         <script type="text/javascript" src="Counter_Cart.js"></script>

    </body>

</html>
function CountRowsUsingJavascript() {

    var totalRowCount = 0;

    var table = document.getElementById("Product_Map");

    var rows = table.getElementsByTagName("tr");

    for (var i = 0; i < rows.length; i++) {

        if (i > 0) {

            totalRowCount++;

        } else {

            totalRowCount = 0;

        }

    }

    if (totalRowCount > 0) {

        totalRowCount = totalRowCount - 1;

        return totalRowCount;

    } else {

        return totalRowCount;

    }

}

var Value_For_The_Cart = CountRowsUsingJavascript();

1 Ответ

0 голосов
/ 12 июня 2019

Чтобы ответить на ваш вопрос, я могу придумать два способа сделать это:

Window.name

window.name является своего рода специальной переменной, которая будет сохранять свое значение при перезагрузках страницы и навигации, пока пользователь остается на той же вкладке. Эта переменная принимает только строки, поэтому вы можете преобразовать свой номер в строку.

window.name = Value_For_The_Cart.toString();

Локальное хранилище

Локальное хранилище используется для хранения данных, которые сохраняются в браузере пользователя и, таким образом, хранятся на разных страницах. Чтобы сохранить что-то в локальном хранилище, вы должны сделать

localStorage.setItem('whateverNameYouWant', Value_For_The_Cart.ToString());

И чтобы получить

localStorage.getItem('whateverNameYouWant');

Но я советую вам подумать, является ли обработка этой клиентской стороны лучшим способом для этого.

...