Это немного загадка, но я думаю, что я сузил часть проблемы.
По сути, у меня есть форма, и когда я нажимаю "Отправить", я создаю сообщение 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);
}
});
});