Проверка формы ajax с помощью mysqli_query

до сих пор я использовал чистый javascript для проверки моей формы, но мне нужно добавить mysqli-запрос в микс. Только я не так хорош с jquery и ajax. Я могу сделать простую форму входа, но это немного сложнее. может ли кто-нибудь дать мне какие-либо указания о том, как я могу добавить компонент jquery / ajax для проверки этого:

foreach($_POST as $key=> $for) { if(!empty($for) && $key != 'send' && $key != 'title') { $usercheck = "SELECT email FROM users WHERE email = '$for'"; $usercheck = $db->query($usercheck); if($usercheck->num_rows > 0) {$x="1"; continue;} if($usercheck->num_rows == 0){$x="2"; break;} } } if($x == "2") {$message = $for." is not a regestered email";} if($x == "1") { // valid - submit. 

что вы можете сделать, это отправить $ .post следующим образом:

  $.post("test.php", { "post1": "something", "post2":"somethingelse" }, // those will be sent via post to test.php function(data){// the returned data console.log(data.return1); // here just logging to the console. **optional** console.log(data.return2); // complete your process }, "json"); // specifying the type as json also optional 

в вашем test.php

 foreach($_POST as $key=> $for) { if(!empty($for) && $key != 'send' && $key != 'title') { $usercheck = "SELECT email FROM users WHERE email = '$for'"; $usercheck = $db->query($usercheck); if($usercheck->num_rows > 0) {$x="1"; continue;} if($usercheck->num_rows == 0){$x="2"; break;} } } if($x == "2") {$data['message'] = $for." is not a regestered email"; echo json_encode($data); // echo to pass back to $.post .. json_encode() in case of using json } if($x == "1") { // valid - submit $data['message'] = 'valid'; // pass the message as valid post echo json_encode($data); } 

Запомнить:

Если вы отправляете форму, чтобы добавить event.preventDefault() в функцию javascript для обработки формы вручную. здесь вы можете найти больше об этом.

Взгляните на плагин Ajax Form http://malsup.com/jquery/form/ .

Например, используйте его так:

 $(document).ready(function() { $('#myForm').ajaxForm( { beforeSend: function() { }, success: function(response) { //wow, it worked, let's do something with response }, uploadProgress: function(event, position, total, percentComplete) { /*eg a upload percentage label */ //var percentVal = percentComplete + '%'; //$('#myLoadingDiv').html(percentVal); }, cache: false, }); });