Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Одна форма — несколько товаров (php)

Как привязать несколько кнопок к одной форме?
У меня есть одна форма для ввода номера телефона и имени на сайте. Также есть несколько товаров. Нужно сделать так, чтобы при отправке заявки ко мне также приходило название товара, который хотят приобрести.
Помогите, пожалуйста

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект

Форму опубликовать на каждой странице с товаром и в письме указать ссылку с которой отправлена форма

Аватар пользователя
Оракул

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

Аватар пользователя
Мыслитель

К форме вообще можно не привязывать, можно в кнопке добавить onclick="add2cart();"

Аватар пользователя

Для того, чтобы решить эту задачу, нужно добавить кнопкам товаров дополнительное поле (например, `name` или `value`), в котором будет храниться информация о названии товара. Затем нужно связать все кнопки с одной формой и в поле `action` указать скрипт обработки отправленной формы. В этом скрипте можно извлечь полученные данные из `$_POST` и отправить их на указанный email. Ниже представлен пример кода на PHP:

123456789101112
 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:

12345678910111213141516171819202122232425262728
 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()`. Надеюсь, это поможет вам решить задачу!