У меня есть следующая форма для пользователей, чтобы сбросить свой пароль, находящийся в файле forget.php в корневом каталоге.
<form id="pass_form" action="" method="post" name="pass_form"> <label>Username:</label> <input type="text" class="blank" name="name" id="name" value="Trader Username" data-default="Trader Username" data-message="Please enter your username..."> *<br> <input class="sub-btn" type="submit" value="Submit"> </form>
Я хотел бы опубликовать имя пользователя для inc / sendreset.php, поэтому у меня есть следующий Ajax в js / scripts.js
$("#pass_form").validator({ offset: [0, 354], position: 'center left', messageClass: 'conerror' }).submit(function(e) { if (!e.isDefaultPrevented()) { var form = $(this); var serdata = form.serialize(); $.ajax({ type: "POST", url: "sendreset", data: serdata, cache: false, success: function (html) { log('inside ajax sendreset', this, arguments); $('#pass_form').fadeOut(400,function(){ if (html=="0") { } else { $('#pass_form').html('<p>The password reset instructions have been sent. Please check your email.</p>'); } $('#pass_form').fadeIn(); }); }, error: function (err) { log('error inside ajax sendreset', this, arguments); } }); //$('#pass_form').fadeOut(400); e.preventDefault(); } });
Однако, похоже, он не помещает имя пользователя в файл. Значение inc / sendreset.php выглядит следующим образом
<?php require_once('./library.php'); require_once('./PHPMailer/class.phpmailer.php'); $Trader = new CompanyTrader(); $resetdata = $Trader->resetTrader($_POST['name']); print_arr($resetdata); //more php which isn't relevant ?>
Я знаю, что файл inc / sendreset.php работает, когда я использую файл $ _GET ['name'], и я использую inc / sendreset.php? Name = username, который возвращает массив для соответствующего пользователя. Однако он не работает с forget.php, используя Ajax. Пожалуйста помоги!