Stack Overflow en español Asked by Colonel Red on December 30, 2020
Actualmente tengo este código en una región que sirve para crear una lista dinámica:
Expediente:
<input type="text" id="expediente"><p>Expediente agregado: <b id='exp'></b></p>
<p>Expedientes:</p>
<ol id="expedientes"></ol>
Esto lo tengo en una acción dinámica de un clic en un botón para ir agregando los elementos del input a la lista:
var list = document.getElementById('expedientes');
var firstname = document.getElementById('expediente').value;
document.getElementById('exp').innerHTML = firstname;
var entry = document.createElement('li');
entry.appendChild(document.createTextNode(firstname));
list.appendChild(entry);
Lo siguiente que hago es intentar enviar los parámetros por medio de Javascript Promises en otra acción dinámica:
var liElems = document.querySelectorAll('ol#expedientes li');
var liElemsLikeArr = Array.from(liElems);
var expedientes = "prueba";
liElemsLikeArr.forEach(function(elem) {
alert(elem.textContent);
});
console.log(liElemsLikeArr);
insert();
function insert(){
apex.server.process(
"CB_AJAX_3",{
x01: expedientes,
f10: liElemsLikeArr
},{
dataType:"text",
loadingIndicator:"#P30_RXP_ENC_LABEL",
success:function(pData){
console.log(pData);
apex.message.alert(pData);
}
}
);
}
Por último en una Devolución de Llamada de Ajax intento recibir el arreglo para recorrerlo con un for en PL/SQL:
DECLARE
l_return varchar2(200);
var varchar(200);
BEGIN
for i in 1..apex_application.g_f10.count loop
var := apex_application.g_f10(i);
end loop;
l_return := 'Exp: ' || apex_application.g_x01 || ' Array:' || var;
htp.prn(l_return);
EXCEPTION WHEN no_data_found THEN
ROLLBACK;
htp.prn('Error');
END;
Como resultado la llamada me devuelve un
Exp: prueba Array:[object HTMLLIElement].
Agradecería mucho su apoyo
Necesita utilizar el método JSON.stringify en la invocación al proceso Ajax, por ejemplo: {x01: JSON.stringify(expedientes)},
Haciendo un ejemplo:
var selectedIds = [];
for (i = 0; i < 10; i++)
{
selectedIds.push(i);
}
Y al ejecutar:
JSON.stringify(selectedIds);
Se obtiene la información del arreglo: "[0,1,2,3,4,5,6,7,8,9]"
Por otro lado, probablemente hay una manera mas sencilla de desarrollar esta solución en APEX.
Answered by Mónica Godoy on December 30, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP