Отличный ответ Фила, однако, поскольку название OP говорит
, отправьте json-объект из javascript (не jQuery) в php
blockquote>, вот как сделайте это с помощью (ванильного) javascript, если это поможет кому-то найти этот метод:
var jsondata; var flickr = {'action': 'Flickr', 'get':'getPublicPhotos'}; var data = JSON.stringify(flickr); var xhr = new XMLHttpRequest(); xhr.open("POST", "../phpincl/apiConnect.php", !0); xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); xhr.send(data); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { // in case we reply back from server jsondata = JSON.parse(xhr.responseText); console.log(jsondata); } }
Обратите внимание, что нам все равно нужно преобразовать ответ сервера в объект javascript , используя
JSON.parse()
Теперь, на стороне сервера (на основе ответа Фила), если вы отправляете ответ клиенту, вы можете сделать:
header('Content-type: application/json'); $json = file_get_contents('php://input'); $json_decode = json_decode($json, true); $json_encode = json_encode($json_decode); echo $json_encode;
ПРИМЕЧАНИЕ:
Причина, по которой сначала происходит декодирование, а затем кодирование обратного входного сигнала json, заключается в том, что escape сбрасывает (возможно) URL-адреса внутри данных, например
json_encode
преобразует этот URLhttp://example.com
в
http:\/\/example.com
... что не относится к OP, но полезно в некоторых других сценариях.
UPPER LIMIT LOOKUP
Если вы ищете значение, которое может находиться между двумя различными значениями в шкале, используйте INDEX (MATCH ()) вместо LOOKUP () потому что он позволяет вам установить параметр Match Type, позволяя вам выбрать нижний предел результатов поиска (750,00 вернет 500,00 в вашем примере). Используйте тип совпадения «1», если ваш массив поиска расположен в порядке возрастания, «-1», если убываете, и «0», если вы хотите только точные совпадения. Если вы хотите выбрать верхний предел (750,00 для возврата 1000,00 в вашем примере), просто позвольте совпадению выбрать нижний предел, но увеличьте его на 1 интервал с +1 в конце:
=INDEX(scale1!$F$2:$F$10,MATCH($A1,scale1!$D$2:$D$10,1)+1)
[ 115] Что выше,
Чтобы применить правило «выше» в любой формуле, просто используйте функцию MAX (), чтобы содержать все возможные параметры, которые вы хотите сравнить и получить наибольшее значение из. Давайте представим, что ваш взнос составляет минимум 70 долларов или 15%, в зависимости от того, что больше, а вход в $ A1 равен 550. Формула будет выглядеть примерно так:
=MAX(70,550*15%)
=MAX(70,82)
=82
Эти две концепции вместе ваша формула может выглядеть примерно так:
=IFERROR(IFS($B1="scale1",MAX(INDEX(scale1!$F$2:$F$10,MATCH($A1,scale1!$D$2:$D$10,1)+1)*10%,70)),"")