Intereting Posts

Отправка данных с помощью AJAX в файл PHP и использование этих данных для запуска PHP-скрипта

В настоящее время я пытаюсь сделать проверку формы в реальном времени с помощью PHP и AJAX. Поэтому в основном – мне нужно отправить значение поля через AJAX в PHP-скрипт (я могу это сделать), а затем мне нужно запустить функцию внутри этого файла PHP с переданными мной данными. Как я могу это сделать?

JQuery:

$.ajax({ type: 'POST', url: 'validate.php', data: 'user=' + t.value, //(t.value = this.value), cache: false, success: function(data) { someId.html(data); } }); 

Validate.php:

// Теперь мне нужно использовать значение «user», которое я отправил в этой функции, как я могу это сделать?

 function check_user($user) { //process the data } 

Если я не использую функции и просто сырые php в validate.php, данные отправляются и код внутри него выполняется, и все работает так, как мне нравится, но если я добавлю каждую функцию, я хочу, чтобы все стало очень грязным, поэтому я предпочитаю использовать отдельные функции ,

Я удалил много кода, который не был уместным, чтобы сделать его коротким.

Вам просто нужно вызвать функцию внутри вашего файла.

 if(isset($_REQUEST['user'])){ check_user($_REQUEST['user']); } 

1) Это не выглядит красиво

 data: 'user=' + t.value, //(t.value = this.value), 

Это мило

 data: {user: t.value}, 

2) Используйте $ _POST

 function check_user($user) { //process the data } check_user($_POST['user']) 

В вашем validate.php вы получите классический запрос POST. Вы можете легко вызвать функцию в зависимости от той переменной, которую вы тестируете, например:

 <?php if (isset($_POST['user'])) { $result = check_user($_POST['user']); } elseif (isset($_POST['email'])) { $result = check_email($_POST['email']); } elseif (...) { // ... } // returning validation result as JSON echo json_encode(array("result" => $result)); exit(); function check_user($user) { //process the data return true; // or flase } function check_email($email) { //process the data return true; // or false } // ... ?> 

Данные отправляются в глобальной переменной $_POST . Вы можете получить к нему доступ при вызове функции check_user:

 check_user($_POST['user']); 

Если вы это сделаете, помните, пожалуйста, чтобы проверить значение поля, не было ли посланное в нем неактивное содержимое.

Вот как я это делаю

Запрос Jquery

 $.ajax({ type: 'POST', url: "ajax/transferstation-lookup.php", data: { 'supplier': $("select#usedsupplier").val(), 'csl': $("#csl").val() }, success: function(data){ if (data["queryresult"]==true) { //add returned html to page $("#destinationtd").html(data["returnedhtml"]); } else { jAlert('No waste destinations found for this supplier please select a different supplier', 'NO WASTE DESTINATIONS FOR SUPPLIER', function(result){ return false; }); } }, dataType: 'json' }); 

Страница PHP Просто принимает 2 ввода

 $supplier = mysqli_real_escape_string($db->mysqli,$_POST["supplier"]); $clientservicelevel = mysqli_real_escape_string($db->mysqli,$_POST["csl"]); 

Запускает их через запрос. Теперь в моем случае я просто возвращаю raw html, хранящийся внутри массива json, с флагом проверки, который говорит, что запрос был успешным или неудачным

 $messages = array("queryresult"=>true,"returnedhtml"=>$html); echo json_encode($messages); //encode and send message back to javascript 

Если вы посмотрите на мой первоначальный javascript, вы увидите, что у меня есть условия на queryresult, а затем просто выплюнуть необработанный html обратно в div, вы можете делать все, что вам нужно.