Проблема, пытаясь предварительно удалить удаление с php и angular

0

Я пытаюсь создать форму с угловым и php. Я уверен, что мой php прав.

Но я не могу удалить. В моем протоколе консоли это говорит о том, что мое удаление было успешным, но, глядя в таблицу, я все еще вижу, что это произошло.

При дальнейшей проверке с отладчиком в chrome я вижу, что мой индекс параметра не определен → http://gyazo.com/88b6dcf9d4c03a1fc9dd235303b20a8f

(часть) Мой HTML-код:

<md-button  class="md-primary" ng-click="delete_task(task.id)">Delete</md-button>

(часть) Мой файл app.js:

/** function to delete a task from list referencing php **/
        $scope.delete_task = function(index) {  
            debugger;
            $http.post('db.php?action=delete_task', 
                {
                    'task_index' : index
                }
            )      
            .success(function (data, status, headers, config) {   
                // here we also replace how to get the user
                getTaskFunction( 
                    /* success function */ 
                    function(data) { 
                        $scope.taskInfo = data; 
                       console.log("The taks have been reloaded" , $scope.taskInfo);
                    }, 
                    /* error function */ 
                    function() 
                    { 
                        alert("Server load failed"); 
                    } 
                );
                console.log('Deletion was succesfull');
            })
            .error(function(data, status, headers, config) {
               console.log("You were NOT succesfull in deleting a task"); 
            }
        );

(часть) Мой PHP-код:

<?php
    include('config.php');

    switch($_GET['action'])  {
        case 'get_ProjectType_Info' :
            get_ProjectType_Info();
            break;
        case 'add_task' :
            add_task();
            break;
        case 'get_Location_Info' :
            get_Location_Info();
            break;
        case 'get_Task_Info' :
            get_Task_Info();
            break;
        case 'delete_task' :
            delete_task();
            break;
    }

    /**  Function to delete a task   **/
    function delete_task() {
        $data = json_decode(file_get_contents("php://input"));
        $index = $data->task_index;
        echo ($index);
        //print_r($data);
        $del = mysql_query("DELETE FROM tblTask WHERE id = ".$index);
        if($del)
        return true;
        return false;
    }

Я не уверен, как исходить из этого момента.

Теги:
angular-material

1 ответ

0

Лучше не использовать переменные запроса и переменные post, как вы это делаете. Создайте полный объект в инструкции javascript, чтобы иметь что-то вроде этого:

{
    'task_index' : index,
    action: 'delete_task'
 }

И тогда вы должны угрожать этим объектным данным внутри вашего коммутатора.

Было бы здорово, если бы вы приняли некоторые методы, которые делают код более понятным и понятным.

Прежде всего, вы должны проверить свой метод delete_task. Чтобы сделать это успешно, я предлагаю вам получить переменные, вызывающие file_get_contents("php://input")) в коммутатор и передавая их как параметры метода. Сделайте это так:

<?php
   // ...
   // Receive id you have already collected
   function delete_task($task_id){        
    $del = mysql_query("DELETE FROM tblTask WHERE id = ".$task_id);
    if($del) return true;
    return false;
   }

   // test that method
   function test_delete(){
     $ret = delete_task(4);   // test with valid and invalid ids 
   }
 ?>

Очевидно, что это не прекрасный способ тестирования методов, и вы должны рассмотреть возможность использования любой тестовой среды для модульных тестов. Но важно строить методы таким образом, чтобы вы могли изменять параметры и наблюдать за их поведением. Как только вы убедитесь, что этот метод (более критический в этом пейзаже) работает, вы можете спуститься на один уровень на стек и проверить, работает ли ваш коммутатор. В настоящее время вы можете проверить свою конечную точку, используя Postman для Chrome, в качестве примера.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню