Я использую этот код для сетки Кено UIдобавить функцию записи в сетке Кендо UI вызывается много раз
function loadPhoneGrid(salesRepsId){
$("#phone-grid").kendoGrid({
dataSource: {
transport: {
read: {
url: "operations/get_phones_sales_reps.php?salesRepsId="+salesRepsId,
type: "GET"
},
update: {
url: "operations/edit_phone_number.php?salesRepsId="+salesRepsId,
type: "POST"
},
destroy: {
url: "operations/delete_phone.php",
type: "POST"
},
create: {
url: "operations/add_phone.php?salesRepsId="+salesRepsId,
type: "POST",
},
},
schema: {
data:"data",
total: "data.length", //total amount of records
model: {
id: "PhoneId",
fields: {
PhoneType: { defaultValue: { PhoneTypeId: 1, PhoneTypeName: "Work"} },
PhoneNumber: { type: "string" },
IsMainPhone: {type: "boolean", editalbe:true},
}
}
},
pageSize: 5,
},
height: 250,
filterable: true,
sortable: true,
pageable: true,
reorderable: false,
groupable: false,
batch: true,
toolbar: ["create", "save", "cancel"],
editable: true,
columns: [
{
field:"PhoneType",
title:"Type",
editor: PhoneTypeDropDownEditor,
template: "#=PhoneType.PhoneTypeName#"
},
{
field: "PhoneNumber",
title:"Phone Number",
},
{
field: "IsMainPhone",
title:"Is Main",
width: 65,
template: function (e){
if(e.IsMainPhone== true){
return '<img align="center" src ="images/check-icon.png" />';
}else{
return '';
}
}
// hidden: true
},
{ command: "destroy", title: " ", width: 90 },
],
});
}
код на стороне сервера есть (add_phone.php)
<?php
require_once("../lib/Phone.php");
$phone = array();
foreach($_POST as $name => $value){
$phone[$name] = $value;
}
Phone::AddPhoneNumber($_GET["salesRepsId"], $phone);
?>
Впервые я добавил новую запись. add_phone.php вызывает один раз, и все работает нормально. Во второй раз (без обновления страницы), когда я пытаюсь добавить новую запись, add_phone.php вызывается дважды. Одна из них содержит первую запись, которая была добавлена в базу данных раньше, а вторая - новые данные.
В результате у меня есть 3 записи (2 одинаковых данных первой вставки) и один новый.
Это пример, чтобы понять (проверьте запрос на почту с поджигатель)
сначала нажмите кнопку Сохранить (ложный, (111) 111-1111, 4, факс) // после того как я войти в этот телефон (111) 111-1111
второй щелчок на кнопке сохранения (false, (111) 111-1111, 4, факс) в дополнение к (false, (222) 222-2222, 3, Work) // после того, как я добавил это (222) 222-2222
Любая помощь?