Можно ли использовать вызов Ajax для отправки формы в файл PHP, где она затем использует функции из отдельного файла PHP, которые не объявлены в файле, вызываемом Ajax ?
В моем случае я использую файл init. php, который содержит соединение MySQL, и использую include () для включения функций для MySQL, Page Logi c и Обработки пользователей. .
init. php
session_start();
$servername = "";
$username = "";
$password = "";
$database = "";
$conn = true;
$conn = mysqli_connect($servername, $username, $password, $database);
//Include functions for MYSQL
include('functions/fn_mysql.php');
//Include functions for Page Logic
include('functions/fn_pages.php');
//Include functions to handle users
include('forms/users.php');
Например, простой HTML Form.
<form id="fileUpload" method="post" action="" enctype="multipart/form-data">
<input type="hidden" name="dispatch" value="file_upload" />
<label for="fileType">What kind of document is this?</label>
<select id="fileType" name="fileType">
<option value="PDF">PDF</option>
<option value="DOC">DOC</option>
</select>
<input type="submit" name="submit_upload" value="Submit" />
</form>
script. js
Файл, используемый для отправки формы.
$("#fileUpload").on('submit', function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: 'users.php',
data: new FormData(this),
dataType: 'json',
contentType: false,
cache: false,
processData: false,
});
пользователей. php
Этот файл принимает вызов Ajax и использует функцию из отдельного PHP файла с именем fn_ mysql. php будет вставлен в БД.
if ($_POST['dispatch'] == 'file_upload') {
// process to DB
$sql = "INSERT INTO doc_attributes (?u)";
$insert_array = array ();
$add = db_insert($sql, $insert_array);
if (!empty ($add)) {
// Added
}
Теперь, когда пользователь отправляет эту форму, данные отправляются в файл пользователей. php. Но теперь не может получить доступ к функциям, описанным в файле fn_ mysql. php, поскольку они не определены.
Без вызова Ajax это работает как задумано. Использование этого метода разделения файлов для отделения функций от форм невозможно с Ajax?