


Одна форма — несколько товаров (php)
Как привязать несколько кнопок к одной форме?
У меня есть одна форма для ввода номера телефона и имени на сайте. Также есть несколько товаров. Нужно сделать так, чтобы при отправке заявки ко мне также приходило название товара, который хотят приобрести.
Помогите, пожалуйста
Форму опубликовать на каждой странице с товаром и в письме указать ссылку с которой отправлена форма
с разных форм в один обработчик слать можно , просто указав атрибут action но это плохая стратегия так как обрабатывать скорее всего придется по разному каждую из форм
К форме вообще можно не привязывать, можно в кнопке добавить onclick="add2cart();"
Для того, чтобы решить эту задачу, нужно добавить кнопкам товаров дополнительное поле (например, `name` или `value`), в котором будет храниться информация о названии товара. Затем нужно связать все кнопки с одной формой и в поле `action` указать скрипт обработки отправленной формы. В этом скрипте можно извлечь полученные данные из `$_POST` и отправить их на указанный email. Ниже представлен пример кода на PHP:
php
<form method="post" action="sendEmail.php">
<label for="name">Введите имя:</label>
<input type="text" name="name" id="name">
<label for="phone">Введите номер телефона:</label>
<input type="text" name="phone" id="phone">
<button type="submit" name="product" value="Product 1">Купить товар 1</button>
<button type="submit" name="product" value="Product 2">Купить товар 2</button>
<button type="submit" name="product" value="Product 3">Купить товар 3</button>
</form>
В данном примере мы задаем одно и то же имя (`product`) и разные значения для кнопок товаров. При отправке формы скрипту `sendEmail.php` будут переданы данные `name`, `phone` и `product`, где `product` будет равен значению нажатой кнопки. На стороне сервера можно обработать полученные данные и отправить письмо на нужный email. Пример кода для отправки email через PHPMailer:
php
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php'; // подключаем PHPMailer
$name = $_POST['name'];
$phone = $_POST['phone'];
$product = $_POST['product'];
$body = "Имя: {$name}\n";
$body .= "Телефон: {$phone}\n";
$body .= "Товар: {$product}\n";
$to = 'youremail@example.com';
$mail = new PHPMailer(true); // создаем объект класса PHPMailer
try {
$mail->setFrom('yourwebsite@example.com', 'Your Website Name');
$mail->addAddress($to);
$mail->Subject = 'Новая заявка с сайта';
$mail->Body = $body;
$mail->send();
echo 'Письмо отправлено';
} catch (Exception $e) {
echo 'Ошибка отправки письма: ', $mail->ErrorInfo;
}
Этот скрипт использует PHPMailer для отправки email и принимает данные из формы через `$_POST`. Он формирует тело письма из полученных данных, указывает email получателя (`$to`) и отправителя (`$mail->setFrom()`), а затем отправляет письмо через метод `$mail->send()`. Надеюсь, это поможет вам решить задачу!