Невозможно запустить sql Query с Ajax - PullRequest
1 голос
/ 05 июля 2019

Я создаю панель администратора, где пользователи могут создавать изменения и удалять события. У меня есть проблема с Ajax (я думаю). База данных не обновляется, даже если ответ ajax выглядит хорошо (модальный скрыт) * ​​1001 *

Работа над версией 7.2 Php (если это имеет значение

<div class="modal">
            <div class="modal_content">
                <label for="event_name">Nom de l'évènement</label>
                <input type="text" id="event_name">
                <label for="event_date">Date</label>
                <input type="text" id="event_date">
                <label for="event_desc">Description</label>
                <input type="text" id="event_desc">
                <label for="event_thumb">Affiche</label>
                <input type="text" id="event_thumb">
                <input type="hidden" id="event_id">
                <a class="save">Sauvegarder</a>
              </div>
          </div>




<script>
  $(document).ready(function(){

      $('.modal').hide();

    //  append values in input fields
      $(document).on('click','a[data-role=update]',function(){
            var event_id  = $(this).attr('id');
            var event_name  = $('#'+event_id).children('td[data-target=event_name]').text();
            var event_date  = $('#'+event_id).children('td[data-target=event_date]').text();
            var event_desc  = $('#'+event_id).children('td[data-target=event_desc]').text();

            $('#event_name').val(event_name);
            $('#event_date').val(event_date);
            $('#event_desc').val(event_desc);
            $('#event_id').val(event_id);
            $('.modal').show();
      });

      // now create event to get data from fields and update in database 

       $('.save').click(function(){
          var event_id  = $('#event_id').val(); 
         var event_name =  $('#event_name').val();
          var event_date =  $('#event_date').val();
          var event_desc =   $('#event_desc').val();

          $.ajax({
              url      : 'modifyEvent.php',
              method   : 'post', 
              data     : {event_name :event_name , event_date:event_date , event_desc:event_desc , event_id:event_id},
              success  : function(response){
                            // now update user record in table 
                             $('#'+event_id).children('td[data-target=event_name]').text(event_name);
                             $('#'+event_id).children('td[data-target=event_date]').text(event_date);
                             $('#'+event_id).children('td[data-target=event_desc]').text(event_desc);
                             $('.modal').hide(); 

                         }
          });
       });
  });
</script>

И вот мой скрипт Php:

if(isset($_POST['event_id'])){

    $event_name = $_POST['event_name'];
    $event_date = $_POST['event_date'];
    $event_desc = $_POST['event_desc'];
    $event_id = $_POST['event_id'];

    //  query to update data 

    $result  = mysqli_query($connection , "UPDATE lepressclub_events SET event_name='$event_name' , event_date='$event_date' , event_desc = '$event_desc' WHERE event_id='$event_id'");
    if($result){
        echo 'data updated';
    }

}
?>

Соединение с базой данных хорошее, запрос тоже хороший. Но база данных не обновляется ..

Спасибо за вашу помощь:)

1 Ответ

1 голос
/ 05 июля 2019

method: "post" не является допустимым свойством параметра $ .ajax. Вы должны использовать type: "post".

Тип по умолчанию "get", поэтому $_POST должно быть пустым.

Документацию можно найти здесь .

$.ajax({
    url      : 'modifyEvent.php',
    type     : 'post',  // <- Here is the change
    data     : {event_name :event_name , event_date:event_date , event_desc:event_desc , event_id:event_id},
    success  : function(response){
        // now update user record in table 
        $('#'+event_id).children('td[data-target=event_name]').text(event_name);
        $('#'+event_id).children('td[data-target=event_date]').text(event_date);
        $('#'+event_id).children('td[data-target=event_desc]').text(event_desc);
        $('.modal').hide(); 
    }
});

Даже если ваш PHP-скрипт напрямую не связан с вашим вопросом, он допускает SQL-инъекцию. Используйте подготовленные операторы, чтобы предотвратить это . Это огромный риск для безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...