У меня проблема, которая как отправить номер на следующую страницу где он обрабатывает номер мобильного телефона и отправляет сообщение на мобильный номер пользователя. Используя метод 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.
Может ли кто-нибудь помочь мне, где я иду не так ??
Объект 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. Также, в качестве хорошей практики вы можете добавить проверку в поле Значение номера мобильного телефона, чтобы данные, введенные пользователем, действительно выглядели как номер мобильного телефона.
Попробуйте следующий код, который может помочь вам:
ПРИМЕЧАНИЕ. Проверьте, входит ли номер мобильного телефона в переменную $ 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);
?>