Привет, ребята, с проблемой получения значения от php. Я знаю, что у нас много проблем с такими проблемами, но мне нужна помощь.
Это мой javascript
$( document ).ready(function() { $(".loading_bg").hide(); }); $( document ).ajaxStart(function() { $(".loading_bg").fadeIn("slow"); }); function validate_user() { //We get data input var username = $('.username').val(); var password = $('.password').val(); //We create a datastring ex: functions.php?function=validate_user&username=username&password=password var datastring = 'function=validate_user' + '&username=' + username + '&password=' + password; //The json Ajax Request $.ajax({ type: 'POST', dataType: 'json', url: '@loginAPI/functions.php', data: datastring, success: function(result) { console.log(result); $(".loading_bg").fadeOut("slow"); }, error: function(xhr, status){ console.log(status); } }); return false; }
и это мой php
<?php require_once('../@configs/db_connect.php'); //Lets send our data back to index if(isset($_POST['function'])) { $user = $_POST['username']; $password = $_POST['password']; echo login::validate_user($user, $password); } class login { static function validate_user($username, $password) { //Call a new default connection $db = db::connect(); //Prepare our sql $stmt = $db->prepare("SELECT * FROM Accounts WHERE username = :username AND password = :password"); //Bind our values to the SQL statement $stmt->bindValue(':username', $username, PDO::PARAM_STR); $stmt->bindValue(':password', $password, PDO::PARAM_STR); $stmt->execute(); //Get number of affected rows $results = $stmt->rowCount(); //If to check if we can find any row with username and password if($results === 1) { //return json_encode("valid account"); } else { return json_encode($username); } } } ?>
Когда я делаю запрос im получая unifned ошибку от моего var, я не знаю, как это исправить, может кто-то мне помочь, если это возможно.
Я думаю, что это что-то с моим $_POST
.. потому что если запустить php с login::validate_user("teste","teste);
я могу получить результат json ..
Все остальное в порядке, вы не правильно передаете данные для ajax-вызова. Вы создаете строку запроса, но вам нужно передать объект JSON, если вы хотите записать его в $ _POST в php и можете добавить к url, если хотите захватить массив $ _GET. Я скорректировал вашу функцию в обоих направлениях ниже:
function validate_user() { //We get data input var username = $('.username').val(); var password = $('.password').val(); //We create a datastring ex: functions.php?function=validate_user&username=username&password=password var datastring = { 'function': 'validate_user', 'username': username, 'password': password } //The json Ajax Request $.ajax({ type: 'POST', dataType: 'json', url: '@loginAPI/functions.php', data: datastring, success: function(result) { console.log(result); $(".loading_bg").fadeOut("slow"); }, error: function(xhr, status){ console.log(status); } }); return false; }
Когда вы хотите захватить данные в $ _GET на стороне сервера
function validate_user() { //We get data input var username = $('.username').val(); var password = $('.password').val(); //We create a datastring ex: functions.php?function=validate_user&username=username&password=password var datastring = 'function=validate_user' + '&username=' + username + '&password=' + password; //The json Ajax Request $.ajax({ type: 'POST', dataType: 'json', url: '@loginAPI/functions.php?' + datastring, data: {}, success: function(result) { console.log(result); $(".loading_bg").fadeOut("slow"); }, error: function(xhr, status){ console.log(status); } }); return false; }
Вот PHP Code
<?php require_once('../@configs/db_connect.php'); //Lets send our data back to index if(isset($_GET['function'])) { $user = $_GET['username']; $password = $_GET['password']; echo login::validate_user($user, $password); } .... // Remaining Class will come here
Мне жаль беспокоить всех вас, настоящую проблему – это моя форма ввода feilds .. Я забыл установить класс … Спасибо всем, и еще раз, им жаль, что вы теряете время с такой глупой проблемой.