ara05ru
Новичок
Дорогие друзья ! Помогите пожалуйста разобраться что к чему в коде. Так как изначально не я писал код. Есть две таблицы php в которых заносятся время работы техники по дате. И если в одну и ту же дату в обоих табелях поставить значение допустим(8), то jquery выдает сообщение "конфликт ..." и перезагружает страницу, не давая возможности внести нужное значение. Так вот нужно чтоб сообщение о "конфликте" при совпадении данных в разных табелях выходило, но при этом можно было все таки внести значение.
код из ajax
JavaScript:
$(function(){
var oldVal, newVal, id, classname;
$('.edit , .editm').focus(function(){
oldVal = $(this).text();
id = $(this).parent().attr("id");
cname = $(this).attr("id");
});
$('.edit , .editm').focusout(function(){
newVal = $(this).text();
if(newVal != oldVal){
// console.log('cname '+cname+', id '+id+', newVal '+ newVal);
$.ajax({
url: '/ajax/edittranstabdataajax.php',
type: 'POST',
data: {val: newVal, id: id, cname: cname,},
cache: false,
success: function(res){
res = res != "" ? $.parseJSON(res) : {};
console.log(res["0"]);
if (!res["0"] ) {
alert('Ошибка при добавлении данных');
location.reload();
}
else if (res["0"] == 'error_duplicate') {
alert('Конфликт с данными в табеле водителей "' + res["1"] + '" от ' + res["2"]);
location.reload();
}
},
error: function(){
alert('Error!');
},
});
}
});
$('.edit').keypress(function(e){
newVal = $(this).text();
if (newVal.length > 1) {
return false;
}
//console.log(e.which);
if (!(e.which >= 48 && e.which <= 57)) {
return false;
}
});
});
PHP:
function diffdate($datetime1, $datetime2){
$datetime1 = new DateTime($datetime1);
$datetime2 = new DateTime($datetime2);
$interval = $datetime1->diff($datetime2);
return $interval->format('%r%a');
}
$id = intval($_POST['id']);
$val = $_POST['val'];
$cname = $_POST['cname'];
/*if (substr($cname, 0, 2) == 'dr' or substr($cname, 0, 2) == 'dh') {
$check = $db->check_transtabdata($id,$cname,$val);
if ($check[0] == 'error_duplicate') {
echo(json_encode($check));
exit();
}
}*/
$dbid = $db->upd_transtablesdata_oc($id,$cname,$val);
if ($dbid) {
echo(json_encode($check));
exit();
}
else{
echo(json_encode(array(0 => 0 )));
exit();
}