Onclick / Ajax на Generate OTP без перезагрузки?

У меня проблема, которая как отправить номер на следующую страницу где он обрабатывает номер мобильного телефона и отправляет сообщение на мобильный номер пользователя. Используя метод onClick или метод ajax, мы можем отправить сообщение без перезагрузки страницы, как показано ниже в коде.

index.php

    <form method="POST" action="test.php">
<input type="text" class="form-control" name="mobile" placeholder="Mobile" maxlength="10">

<input type="text" class="form-control" name="otp" placeholder="OTP" maxlength="11" style="width: 40%; float: left;">

<input type="submit" id="btnonOtp" value="Generate OTP" class="form-control" style="background-color:#005995;width: 56.5%; float: left; margin: 0 0 0 12px; border-radius: 0;">
</form>

$('#btnonOtp').click(function()
{
$.ajax({
url: test.php,
type:'POST',
data:
{
text: mobile,
value: mobile
},
success: function(msg)
{
alert('OTP Sent');
}
});
});

test.php

    <?php
include 'send.php';$_SESSION['smsotp'] = sms_OTP();
$num=$_POST['mobile'];
$number = $num;
//$text = 'Hi There, how are you?';
$sms_api_result = sms_Send($number, 'Please do not share the one time password with anyone. Your One Time password is: '.$_SESSION['smsotp'],$debug);

?>

Если я запускаю test.php с передачей номера мобильного телефона напрямую, то сообщение доставляется, но мне нужно передать номер мобильного телефона динамически в переменную $ num.

Может ли кто-нибудь помочь мне, где я иду не так ??

1

Решение

Объект data в вашем ajax не передает правильное значение.
Сначала добавьте и добавьте идентификатор в тег мобильного телефона,

<input type="text" class="form-control" id="mobile" name="mobile" placeholder="Mobile" maxlength="10">

Во-вторых, измените тип ввода кнопки с type="submit" в type="button", Это необходимо, потому что «submit» по умолчанию выполняет отправку всей страницы, даже если для нее определен обработчик кликов. [Функция щелчка также выполняется, но после этого также происходит отправка страницы.]

А затем обновите функцию щелчка, как показано ниже.

$('#btnonOtp').click(function()
{
$.ajax({
url: test.php,
type:'POST',
data:
{
// The key is 'mobile'. This will be the same key in $_POST[] that holds the mobile number value.
mobile: $('#mobile').val()
},
success: function(msg)
{
alert('OTP Sent');
}
});
});

Это должно решить вашу основную проблему.

Подсказка отладки: Чтобы проверить, правильно ли передаются данные, в test.php вы можете сделать var_dump($_POST), Это напечатает все пары ключ-значение, которые были получены. Это должно помочь вам проанализировать то, чего обычно не хватает.

P.S. Также, в качестве хорошей практики вы можете добавить проверку в поле Значение номера мобильного телефона, чтобы данные, введенные пользователем, действительно выглядели как номер мобильного телефона.

0

Другие решения

Попробуйте следующий код, который может помочь вам:

ПРИМЕЧАНИЕ. Проверьте, входит ли номер мобильного телефона в переменную $ number или нет.

 <?php
include 'send.php';$_SESSION['smsotp'] = sms_OTP();
$number = (int) $_POST['mobile'];
//$text = 'Hi There, how are you?';
$sms_api_result = sms_Send($number, 'Please do not share the one time password with anyone. Your One Time password is: '.$_SESSION['smsotp'],$debug);

?>
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector