одна форма, две кнопки отправки для двух разных скрытых значений - PullRequest
0 голосов
/ 02 октября 2019

У меня есть базовая форма публикации, которая отправляет некоторые данные в шлюз SMS. Одним из скрытых полей «сообщение» является текст сообщения, которое я хочу отправить. Мне нужны две кнопки отправки для двух разных ситуаций (case1 и case2) - каждая из них передает свой текст в значении «message». Я ничего не могу сделать на стороне сервера, так как данные отправляются на сторонний шлюз. Любой совет?

текущий код:

Мне просто нужны две кнопки отправки - одна для case1 и одна для case2.

<form action="https://gatway.com/send.php" method="post">
<input name="key" type="hidden" value="APIKEYxxxxx" />
<input name="message" type="hidden" value="message to send in case 1" />
<input name="message" type="hidden" value="message to send in case 2" />
To: <input name="to" type="text" />
<input name="username" type="hidden" value="username" />
<input name="from" type="hidden" value="+44xxxxxxxxxx" />

<input type="submit" value="Submit" /></form>

Ответы [ 2 ]

2 голосов
/ 02 октября 2019

Вы можете использовать кнопки с тем же именем. Они будут заполнять переменную message в зависимости от того, по какой из них была нажата.

<form action="https://gatway.com/send.php" method="post">
    <input name="key" type="hidden" value="APIKEYxxxxx" />
    To: <input name="to" type="text" />
    <input name="username" type="hidden" value="username" />
    <input name="from" type="hidden" value="+44xxxxxxxxxx" />
    <button type="submit" name="message" value="message to send in case 1">Submit 1</button>
    <button type="submit" name="message" value="message to send in case 2">Submit 2</button>
</form>
0 голосов
/ 02 октября 2019

Как насчет того, чтобы вместо двух кнопок отправки иметь одну, а затем два поля сообщения в виде текста, пользователь может напечатать сообщение в любом случае. затем вместо отправки формы непосредственно в шлюз sms отправьте форму своему сценарию на своем сервере, чтобы проверить, какой случай использовался, затем отправьте данные почты на шлюз sms с помощью CURL.

<form action="smschecker.php" method="post">
    <input name="key" type="hidden" value="APIKEYxxxxx" />
    <input name="message1" type="text" value="message to send in case 1" />
    <input name="message2" type="text" value="message to send in case 2" />
    To: <input name="to" type="text" />
    <input type="submit" value="Submit" />
</form>

smschecker.php

<?php
define('SMS_SERVICE_URL', 'https://gatway.com/send.php');
define('username', 'username_here');
define('password', 'password_here');
define('key', 'YOUR_KEY/SID_HERE');
define('from', "+44xxxxxxxxxx");

if (isset($_POST['message1']) && !empty($_POST['message1'])) {

    $message = $_POST['message1'];
}

if (isset($_POST['message2']) && empty($_POST['message2'])) {

    $message = $_POST['message2'];
}

$to   = $_POST['to'];
$from = $_POST['from'];


$sms = array(
    "to" => $to,
    "message" => $message,
    "from" => from
);



$post = array(
    'user' => username,
    'pass' => password,
    'key' => key,
    'sms' => $sms
);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, SMS_SERVICE_URL);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);

curl_close($ch);
?>
...