Ajax-вызов получает 200, но я не вставляю запись после вызова функции - PullRequest
0 голосов
/ 06 сентября 2018

Это немного загадка, но я думаю, что я сузил часть проблемы.

По сути, у меня есть форма, и когда я нажимаю "Отправить", я создаю сообщение ajax, которое попадает в мой маршрут, затем в контроллер, и это вызывает функцию в другом месте, которая выполняет вставку (через процедуру в DB2, но в основном прямую вставку)

Мой Ajax возвращает сообщение 200 ok и показывает данные формы в инструментах разработки, так что эта часть в порядке. Цель состоит в том, чтобы взять значения формы вместе со значениями, которые я жестко запрограммировал в контроллере, и передать их в функцию, которая подготавливает оператор и выполняет его.

Я думаю, что проблема в том, что все, что приходит из формы, является строкой, но моя функция ожидает int и string, плюс процедура будет успешно вставлена, только если используется правильный тип данных. Я думаю, что проблема в данных формы, потому что, если я делаю грубый жесткий код и вызываю функцию вручную в тестовом файле, как это, он вставляет:

$id = 123;
$name1 = 'Test Name';
$number1 = 112;
$name1 = '2nd Test Name';
$number2 = 584;
$number3 = 88;
$name3 = 'Name Blue';
$category = 'Fruit';
$comment = 'Testing the comments';
$date1 = '2018-09-18';
$date2 = '2018-09-19';

Так что, в основном, мне все еще нужно передать данные формы и взять их, а также другие значения из контроллера, убедиться, что строки передаются как строки, а INT - как int, а затем выполнить функцию. Я, должно быть, здесь упускаю что-то довольно простое, но сейчас я на 100% потерян.

Любая помощь очень ценится

Route.php

Route::post('insertPList', 'Controller@insertPList');

controller.php

public function insertPList(Request $request)
{

        $id = 123;
        $name1 = $request->name1;
        $number1 = $request->number1;
        $name2 = $request->name2;
        $number2 = $request->number2;
        $number3 = $request->number3;
        $name3 = $request->name3;
        $category = 'Fruit';
        $comment = $request->comment;
        $date1 = '2018-09-10';
        $date2 = '2018-09-11';

        $service = new service();
        $service->insertListRecord($id, $name1, $number1,$name2, $number2, $number3, $name3, $category, $comment, $date1, $date2);

}

Service.php

public function insertListRecord(int $id, string $name1, int $number1, string $name2, int $number2, int $number3, string $name3, string $category, string $comment, string $date1, string $date2)
{
    $link = Iseries::conn();
    $sql = "CALL INSERT_LIST(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

    $prep = odbc_prepare($link, $sql);
    $exec = odbc_execute($prep, array($id, $name1, $number1, $name2, $number2, $number3, $name3, $category, $comment, $date1, $date2));


    if (odbc_error())
     {
           echo odbc_errormsg($link);
     }
}

blade.php

    $("#save").click(function(e){

    e.preventDefault();

    var name1 = $("input[name=name1]").val();
    var number1 = $("input[name=number1]").val();
    var name2 = $("input[name=name2]").val();
    var number2 = $("input[name=number2]").val();
    var number3 = $("input[name=number3]").val();
    var name3 = $("input[name=name3]").val();
    var comment = $("textarea[name=comment]").val();

    $.ajax({
        url:'URL',
        data:{
            name1:name1,
            number1:number1,
            name2:name2,
            number2:number2,
            number3:number3,
            name3:name3,
            comment:comment
        },
        "_token": "{{ csrf_token() }}",
        type:"POST",
        success:function(data){
            console.log(data);
        },
        error: function(jqxhr, status, exception) {
             alert('Exception:', exception);
         }
    });

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