вставьте в B15 и перетащите вправо:
=IFERROR(SUMPRODUCT(QUERY(TRANSPOSE(QUERY(TRANSPOSE($B$2:$J$9),
"where Col1='"&B11&"'", 2)),
"where Col1='"&B13&" "&B12&"'", 0)), )
Для ошибок JSON вы можете вернуть с сервера код состояния 500, а не 200. Затем код клиента jquery может использовать обработчик error: в файле $. Функция ajax для обработки ошибок. В ответе 500 вы можете проанализировать объект ошибки JSON из responseText, в ответе 200 вы можете просто вставить свой HTML в div как обычно.
Хотя идея Стива хороша, я добавляю ее для полноты картины.
Похоже, что если вы укажете dataType как json, но вернете HTML, jQuery справится с этим нормально.
Я проверил эту теорию с помощью следующего кода:
if($_GET['type'] == 'json') {
header('Content-type: application/json');
print '{"test":"hi"}';
exit;
} else {
header('Content-type: text/html');
print '<html><body><b>Test</b></body></html>';
exit;
}
$ _ GET ['type']
просто для того, чтобы я мог контролировать, что возвращать во время тестирования. В вашей ситуации вы бы вернули то или иное, в зависимости от того, пошло ли что-то правильно или неправильно. После этого, с помощью этого кода jQuery:
$.ajax({
url: 'php.php?type=html', // return HTML in this test
dataType: 'json',
success: function(d) {
console.log(typeof d); // 'xml'
}
});
Несмотря на то, что мы указали JSON как dataType, jQuery (1.3.2) выясняет, что это не так.
$.ajax({
url: 'php.php?type=json',
dataType: 'json',
success: function(d) {
console.log(typeof d); // 'object'
}
});
Так что вы можете воспользоваться этим (насколько я знаю) недокументированное поведение, позволяющее делать то, что вы хотите.
Но почему бы не вернуть только JSON независимо от статуса (успех или ошибка) в POST и не использовать GET для отображения результатов?
Это кажется лучшим подходом, если вы спросите я.
Или вы всегда можете вернуть ответ JSON и указать один параметр в качестве содержимого HTML.
Что-то вроде:
{
"success" : true,
"errormessage" : "",
"html" : "<div>blah</div>",
}
Думаю, вам достаточно убрать двойные кавычки в значении html, и синтаксический анализатор json отменит это за вас.