Простой ответ заключается в том, что вы отключили свой входной код профиля в своем html:
<input type="text" class="form-control border-input"
id="profileCode" name="profileCode" value="" disabled> <!-- disabled -->
Именно поэтому $_POST
не получает код профиля.
Кроме того, вы отправляете только значение profileCode в ajax -запросе:
data: {profileCode:profileCode}`
Итак, вы отправляете запрос ajax (сообщение -request) с данными profileCode. Сам код профиля отправляется на PHP. Но поскольку PHP не включает отключенные элементы в PHP, значение будет пустым.
И поэтому другие поля также будут пустыми - потому что ваш код в тесте. php:
$statement->fetchAll();
вообще не будет выводить и, следовательно, ответ html не будет отправлен обратно (поскольку profileCode в запросе к базе данных пуст (SELECT * FROM profile WHERE profileCode=''
))
И то, что другие уже прокомментировали: Вы должны улучшить то, как вы обрабатываете SQL -инъекции. Вы используете подготовленные заявления, но вы используете их способом, который не ' t вообще защищать.
Я полагаю, что вы используете PDO-драйвер, поэтому:
Вместо:
$query = "SELECT * FROM profile WHERE username='$username'";
$statement = $dbcon->prepare($query);
You следует использовать:
$query = "SELECT * FROM profile WHERE username=:username";
$statement = $dbcon->prepare($query);
$statement->execute( array(':username', $username) );
Это делает невозможным для пользователя возиться с реальной строкой (SELECT * FROM profile WHERE username=:username)
, поскольку :username
является просто заполнителем.