Я уже ссылался на этот вопрос, и принятый ответ мне не помог: Как получить значение поля ввода с помощью PHP

Это мой файл кода result.php:

...
<th> 
    <form name="form" action='checkout.php' method='POST'>
         <input class='mx-2' type='number' id='price' name='price' placeholder='Donation Amount'">
    </form>
</th>  
<script
    src='https://checkout.stripe.com/checkout.js' class='stripe-button'
    data-key='key'
    data-amount=get value of input field with id price here
    data-name='Name'
    data-description='Description'
    data-currency='usd'
    data-locale='auto'>
</script>     
...

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

<?php $price = isset($POST['price']) ? $POST['price'] : 0; ?>

Другой метод, который я пробовал:

<?php
$htmlEle = "<span id='SpanID'>Span Sports</span>";
$domdoc = new DOMDocument();
$domdoc->loadHTML($htmlEle);

$spanValue = $domdoc->getElementById('SpanID')->nodeValue;

Я нашел приведенный выше фрагмент на https://phpcoder.tech. /how-to-get-html-tag-value-in-php/ и изменил его в соответствии с моими потребностями, но не работал.

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

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

0
Odasaku 19 Янв 2022 в 10:15
Похоже, вы пытаетесь получить значение до того, как пользователь введет его. Вам нужно будет подождать, пока они не отправят форму, прежде чем отображать этот скрипт полосы, чтобы вы могли поместить подходящее значение в тег количества данных.
 – 
ADyson
19 Янв 2022 в 10:19

3 ответа

Если вы не хотите ждать, пока клиент отправит форму, вам понадобится javascript, поскольку PHP — это язык рендеринга на сервере.

По сути, вам нужно настроить прослушиватель на входе, и после того, как клиент введет данные в нужном вам формате, и вы их подтвердите, вы можете передать это в скрипт чередования.

0
Glauco Heitor 19 Янв 2022 в 10:26

Вы используете неправильный синтаксис POST. правильно: $_POST

Пока вы пытаетесь получить: $POST

Документы: https://www.php.net/manual/en /reserved.variables.post.php

--В части javascript--

Если вы хотите обработать php цену перед вызовом полосы, вам следует использовать другую конфигурацию, потому что эта все равно не будет работать.

Вы можете:

  • полоса вызова, например, ajax или другой запрос, который в фоновом режиме публикует forst
  • полоса вызова на другой странице
  • не делайте форму, просто текстовое поле (если вам не нужна цена дескриптора php перед запросом полосы)

Это зависит от того, что вы хотите сделать.

0
Aurimas 19 Янв 2022 в 10:33
<th> 
    <form name="form" action='checkout.php' method='POST'>
         <input class='mx-2' type='number' id='price' name='price' placeholder='Donation Amount'">
         <input type="submit"> 
    </form>
</th> 

Кнопка отправки здесь отсутствует, поэтому добавьте кнопку отправки.

И обновите свой PHP-код

<?php $price = isset($_POST['price']) ? $_POST['price'] : 0; ?>

$_POST - PHP Superglobals для получения значений сообщений формы. $POST (которую вы используете) — это обычная переменная PHP.

Пожалуйста, обновите свой код следующим образом. Он будет работать.

0
Chetan Jha 19 Янв 2022 в 10:37