2016-01-14 6 views
0

Я создал страницу администрирования для своего сайта, которая содержит многочисленные формы, которые сохраняют, обновляют и удаляют данные в разные таблицы в моей базе данных.Сообщение Ajax для php для обновления mysql

В настоящее время у меня есть один файл PHP для каждой функции, которая выполняет запрос mysql в соответствии с моей командой ajax post. который немного выйдет из-под контроля.

, например, у меня есть файл для сохранения новой категории

$cataddname = $_POST['name']; 
$area = $_POST['area']; 

$shortname = preg_replace('/\s+/', '_', $cataddname); 

$update_category = "INSERT INTO clet_faq_category (id, name, nickname, area) VALUES ('', '$cataddname', '$shortname', '$area')"; 
mysqli_query($db_connect, $update_category); 

моих сохранить новые командные должности категории на данный файл:

тогда у меня есть файл, который сохраняет категорию редактирование:

$cataddname = $_POST['name']; 
$area = $_POST['area']; 
$id = $_POST['cid']; 
$shortname = preg_replace('/\s+/', '_', $cataddname); 

$update_category = "UPDATE clet_faq_category SET name='$cataddname', nickname='$shortname', area='$area' WHERE id = '$id'"; 
mysqli_query($db_connect, $update_category); 

И еще один, чтобы удалить категорию:

$c_id = $_POST['delete_id']; 

$sql_del = "DELETE FROM clet_faq_category WHERE id = '$c_id'"; 
$del_question = mysqli_query($db_connect, $sql_del); 

тогда у меня есть вызов Ajax JQuery, который вызывает страницу:

function newcat(){ 
    var id = "answer"; 
    tinymce.execCommand('mceRemoveEditor', true, id); 

    var category = document.getElementById('newcategory').value; 
    var area = document.getElementById('area').value; 
    var dataString = 'name=' + category + '&area=' + area; 
    $.ajax({ 
     type: "post", 
     url: "newcat.php?area_id=" + areaid, 
     data : { 
      'name': category, 
      'area': area, 
      'query' : query 
     }, 
     cache: false, 
     success: function(html){ 
      $('#category_table').html(html); 
      $('#cat-form').text("Category Saved"); 
     } 
    }); 
    return false; 
} 

И когда вы смотрите на них, это в значительной степени то же самое, это просто работает MySQL запросов.

Что я пытаюсь сделать, это немного упростить, я думал о передаче всего запроса через ajax в свой php-файл, но это не вариант, поскольку любой, кто может видеть мой файл js, сможет все мои запросы и имена таблиц, и все, что им нужно сделать, это отправить запрос на мою php-страницу и повредить всю мою БД.

, так что мой вопрос в том, есть ли способ сделать это умнее, возможно, создавая php-функции внутри одного и того же файла, который имеет category_delete(), category_add(), category_edit() в том же файле и использует ajax target каждая из этих категорий, по крайней мере, все мои функции и запросы будут находиться в одном месте не в нескольких отдельных файлах, если вы знаете, что я имею в виду.

+0

Бросьте эти фрагменты php в класс ... ну, вы должны убедиться, что это хорошо сформированный класс. – Rasclatt

+0

как бы вы назвали класс на ajax? –

+0

Я думаю, вам нужно поместить ваши отдельные php-файлы в хорошо сформированный класс запросов. Вы можете сделать что-то подобное с вашим ajax, но PHP кажется, что его можно было бы гораздо легче получить доступ – Rasclatt

ответ

0

Вы можете сделать как это создать отдельный класс, которые выполняют параметры для вставки удаления и Обновить. и на вашей странице ajax назовите эту функцию следующим образом:

$func = new CUD(); 

switch($_POST['action']) 
    { 
     case 'delete': 
      $func->delete($values..) 
     case 'update': 
      $func->update($values..) 
      case 'delete': 
      $func->insert($values..) 

    } 
0

Вы можете послать дополнительный параметр в AJAX в действии, этот параметр указывает действие

в PHP

 switch($_POST['action']) 
    { 
     case 'delete': 
      ..... 
     } 
Смежные вопросы