JavaScript — как передать массив или объект в store.load ({params: {}})?

store.load({
params: {
start: 0,
limit: 1000,
proc_nm: 'sel_bkng_srch',
test_parms1: [
{'parm_val_var1':1, 'parm_val_var1':2}
],
srchStrng: '',
test_parms2: JSON.stringify(parm_val_var1, parm_val_var1),
connId: 'AW'
} ....

test_parms1 а также test_parms 2 это попытки получить какой-то массив / объект в php в качестве параметра хранимой процедуры без необходимости их индивидуального перечисления. Все мои попытки либо заканчиваются в PHP как [объектный объект], либо только как первое значение. Думал, у меня все это работало, но я отправлял только 1 параметр, который работает отлично. Какой синтаксис правильный? ТИА.

0

Решение

[] представляет массив.

[1,2,3,] массив с 3 элементами.

{} представляет объект.

[{"as":1},{"asa":2},{"sd":3}] пример массива из 3 объектов с парой ключ-значение

Попробуйте изменить [ {'parm_val_var1':1, 'parm_val_var1':2}] Как

[{"parm_val_var1":1}, {"parm_val_var1":2}] который в основном является массивом объекта Json, где каждый объект имеет пару ключ-значение.

Для json, приведенного ниже, элементы будут доступны как:
{"abc":[{"as":1},{"asa":2},{"sd":3}]}

jsonObject.abc.as = 1
jsonObject.abc.asa = 2
jsonObject.abc.sd = 3

Также обратите внимание, что я заменил ‘(одинарная кавычка) на «(двойная кавычка). Стандарт JSON

0

Другие решения

store.load({
params: {
start: 0,
limit: 1000,
proc_nm: 'sel_bkng_srch',
test_parms2: JSON.stringify([dnStrng, mtStrng, dtFromStrng, dtToStrng]),
connId: 'AW'
}, ....

тогда в php:

$proc_parms = json_decode($_REQUEST['test_parms2']);
$procNm = $_REQUEST['proc_nm'];

$proc_parms_ar = array();
$i = 0;
foreach($proc_parms as $val) {
flog("val = %s", $val);
array_push($proc_parms_ar,array($proc_parms[$i], 1));
$i++;
}

$tsql_callSP = "{call " .  $procNm . "( ?, ?, ?, ?)}";

/* Execute the query. */
$stmt = sqlsrv_query( $conn, $tsql_callSP, $proc_parms_ar);

Он берет список параметров и создает массив, который требует sqlsrv с параметром «parm1,1», определяющим входной параметр, а затем вызывает хранимый процесс SQLServer, запрошенный хранилищем ExtJS. $ Tsql_callSP должен быть построен из массива parms, поэтому ‘?’ добавляется для каждого параметра.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector