Foros del Web » Programando para Internet » Javascript »

salto de linea para hacer update

Estas en el tema de salto de linea para hacer update en el foro de Javascript en Foros del Web. Este es un tema del que hay buena literatura, pero de todo lo que he leido no me ha servido nada.... tengo este trozo de ...
  #1 (permalink)  
Antiguo 30/06/2016, 06:41
 
Fecha de Ingreso: noviembre-2013
Mensajes: 147
Antigüedad: 10 años, 5 meses
Puntos: 1
salto de linea para hacer update

Este es un tema del que hay buena literatura, pero de todo lo que he leido no me ha servido nada....

tengo este trozo de codigo que guarda unas intrucciones para hacer update a una tabla

Código Javascript:
Ver original
  1. if (i===valReg){
  2.                     sqlstr = sqlstr + "\ninsert INTO SGV2_FORMULAS "
  3.                                     + "(frm_idliq,frm_nombre_formula,frm_orden,frm_operador,frm_agrupador1,frm_formula,frm_agrupador2)"
  4.                                     + "VALUES "
  5.                                     + "("+idLiq+",'"+NomFormula+"','"+Orden+"','"+idOper+"','"+Parent1+"','"+idFuente+"','"+Parent2+"');";
  6.                  }else{
  7.                     sqlstr = sqlstr+"update SGV2_FORMULAS set "
  8.                                    + "frm_idliq="+idLiq+","
  9.                                    + "frm_nombre_formula='"+NomFormula+"',"
  10.                                    + "frm_orden="+Orden+","
  11.                                    + "frm_operador='"+idOper+"',"
  12.                                    + "frm_Agrupador1='"+Parent1+"',"
  13.                                    + "frm_formula='"+idFuente+"',"
  14.                                    + "frm_Agrupador2='"+Parent2+"'"
  15.                                    + "where frm_idliq="+idLiq+" and frm_nombre_formula='"+NomFormula+"' and frm_orden="+Orden+"\n; ";

pero a pesar que he intentado con "\n", '\n', "\", '\', '<br /', y otras mas pero no logro que me separe las instrucciones UPDATE O INSERT con salto de linea.
  #2 (permalink)  
Antiguo 30/06/2016, 06:46
 
Fecha de Ingreso: noviembre-2013
Mensajes: 147
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: salto de linea para hacer update

Bueno tambien he intentado pasar los parametros uno por uno pero dentro del for parece que el ciclo se hace muy rapido y no logra pasar si no el primero, pego aqui la funcion por si acaso alguien me puede dar una mano. gracias.

Código Javascript:
Ver original
  1. function fncActualizaRango(idLiq, nomFormula){
  2.               NomFormula=document.getElementById("txtnomFormula").value;
  3.               var sqlstr="";
  4.               //recorro la tabla de rangos para hacer las actualizaciones
  5.               var tableReg = document.getElementById("dataRangos");
  6.           for (var i = 1; i < tableReg.rows.length; i++){
  7.                  cellsOfRow = tableReg.rows[i].getElementsByTagName("td");
  8.                  found      = false;
  9.                  Orden      = cellsOfRow[0].firstChild.value;
  10.                  //obtengo el item seleccionado en operador
  11.                  nslc='slcOper'+i;
  12.                  var lista = document.getElementById(nslc);
  13.                  var indiceSeleccionado = lista.selectedIndex;
  14.                  var opcionSeleccionada = lista.options[indiceSeleccionado];
  15.                  var idOper = opcionSeleccionada.value;
  16.                  //obtengo el item seleccionado en PARENTESIS A
  17.                  nslc='slcPA'+i;
  18.                  var lista = document.getElementById(nslc);
  19.                  var indiceSeleccionado = lista.selectedIndex;
  20.                  var opcionSeleccionada = lista.options[indiceSeleccionado];
  21.                  var Parent1 = opcionSeleccionada.value;
  22.                  //obtengo el item seleccionado en fuentes
  23.                  nslc='slcFuente'+i;
  24.                  var lista = document.getElementById(nslc);
  25.                  var indiceSeleccionado = lista.selectedIndex;
  26.                  var opcionSeleccionada = lista.options[indiceSeleccionado];
  27.                  var idFuente = opcionSeleccionada.value;
  28.                  //obtengo el item seleccionado en PARENTESIS C
  29.                  nslc='slcPC'+i;
  30.                  var lista = document.getElementById(nslc);
  31.                  var indiceSeleccionado = lista.selectedIndex;
  32.                  var opcionSeleccionada = lista.options[indiceSeleccionado];
  33.                  var Parent2 = opcionSeleccionada.value;
  34.                  valReg=tableReg.rows.length-1;
  35.                  
  36.                  if (i===valReg){
  37.                     sqlstr = sqlstr + " insert INTO SGV2_FORMULAS "
  38.                                     + "(frm_idliq,frm_nombre_formula,frm_orden,frm_operador,frm_agrupador1,frm_formula,frm_agrupador2)"
  39.                                     + "VALUES "
  40.                                     + "("+idLiq+",'"+NomFormula+"','"+Orden+"','"+idOper+"','"+Parent1+"','"+idFuente+"','"+Parent2+"');";
  41.                  }else{
  42.                     sqlstr = sqlstr+"update SGV2_FORMULAS set "
  43.                                    + "frm_idliq="+idLiq+","
  44.                                    + "frm_nombre_formula='"+NomFormula+"',"
  45.                                    + "frm_orden="+Orden+","
  46.                                    + "frm_operador='"+idOper+"',"
  47.                                    + "frm_Agrupador1='"+Parent1+"',"
  48.                                    + "frm_formula='"+idFuente+"',"
  49.                                    + "frm_Agrupador2='"+Parent2+"'"
  50.                                    + "where frm_idliq="+idLiq+" and frm_nombre_formula='"+NomFormula+"' and frm_orden="+Orden+"\n; ";
  51.                  }  
  52.                  document.getElementById("txtsqlstr").value ==="\n"+sqlstr;
  53.  
  54.                 //envio los datos para guardarlos
  55.                 var ele_proces = document.getElementById("salvaFormula");
  56.                 var proceso_url = "sgv2/../../AccesoBD/sgvSalvarFormula.jsp?id1="+idLiq
  57.                               +"&id2="+NomFormula+"&id3="+Orden+"&id4="+sqlstr;
  58.                 peticion2.open("GET", proceso_url);peticion2.onreadystatechange = function(){
  59.                 if (peticion2.readyState === 4){ele_proces.innerHTML = peticion2.responseText;}};
  60.                 peticion2.send(null);
  61.               }
  62.            }
  #3 (permalink)  
Antiguo 30/06/2016, 11:05
 
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 9 años, 10 meses
Puntos: 10
Respuesta: salto de linea para hacer update

Si separas cadenas por "\n" estas mantendrán el salto de carro. haz la prueba en la misma consola del navegador:

Código Javascript:
Ver original
  1. var str = "Cadena uno";
  2. str += "\nCadena dos";
  3. str += "\nCadena tres";
  4. str

Esto te dará por consola:

Código Javascript:
Ver original
  1. "Cadena uno
  2. Cadena dos
  3. Cadena tres"

Es decir, mantiene los saltos. De hecho si haces:

Código Javascript:
Ver original
  1. str.split("\n")

Obtendrás:

Código Javascript:
Ver original
  1. ["Cadena uno", "Cadena dos", "Cadena tres"]

Otra cuestión es el tratamiento que tu le des en "sgvSalvarFormula.jsp", lo cual supongo que te llegará de alguna manera dada. Igual es conveniente acordar otro tipo de salto de carro, por ejemplo || o algo que se proponga si el \n no llega.

Por cierto, esta línea:

Código Javascript:
Ver original
  1. document.getElementById("txtsqlstr").value ==="\n"+sqlstr;

No está haciendo nada, solo dará false o true. Igual lo que quieres hacer es:

Código Javascript:
Ver original
  1. document.getElementById("txtsqlstr").value = "\n"+sqlstr;

Por otro lado, estás metiendo una petición ajax en un bucle, el bucle irá más rápido que las llamadas, mal. Echa un ojo a las promesas (https://www.promisejs.org/), igual te ayudan.

Suerte!

Etiquetas: salto, update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:03.