Foros del Web » Programando para Internet » PHP »

Clonar Table

Estas en el tema de Clonar Table en el foro de PHP en Foros del Web. Saludos Actualmente tengo en un formulario una seccion en la cual los clientes diligencian una serie de campos para adicionar un articulo. al momento que ...
  #1 (permalink)  
Antiguo 28/07/2006, 10:57
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Exclamación Clonar Table

Saludos

Actualmente tengo en un formulario una seccion en la cual los clientes diligencian una serie de campos para adicionar un articulo. al momento que oprimen sobre el boton Adicionar se hace la validacion correspondiente. Al estar ok, me clona el table anterior por si desea adicionar otro articulo.. Lo estaba realizando con Js pero tengo el gran problema que me esta clonando la tabla con los datos que he dilingenciado anteriormente la verdad e tratado de mirar que mas puedo puedo hacer pero no he dado con la solucion... Mi pregunta viene si en php existe alguna funcion para poder clonar un table y se pueda hacer el manejo que necesito. Especialmente que al momento de adicionar un nuevo articulo me queden todos los campos en blanco.

Bueno espero que me halla dado a entender..

Agradezco cualquier ayuda posible.

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #2 (permalink)  
Antiguo 28/07/2006, 11:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero hablas de "tablas" de HTML? .. PHP como lenguaje del lado del servidor no vé nada de lo que en el cliente suceda (con tu botón "Adicionar")

Si hicieras algo con PHP se trataría de recargar la página como para que generases otra página con otra tabla HTML si corresponde ..

(Podrías ilustrar el problema con algo que se viera como funciona actualmente si es posible y/o código .. pero mejor algo donde lo podamos ver funcionando).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 28/07/2006, 13:43
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Exclamación

Hola Cluster. El servidor esta caido entonces no tengo forma de mostrarte el formulario funcionando.

A continuacion te voy a mostrar los codigos del formulario solo es que los guardes con el nombre que te indico y veras el error qeu tengo.

forma.html
Código HTML:
<title></title>
	<link href="estiloforma10.css" rel="stylesheet" type="text/css">
		<script language="javascript" src="datos.js">
	  </script>
</head>
<body>
<form name="forma" id="forma"   method="POST" action="forma.html" enctype="multipart/form-data">
    <div
            id="ayuda"
            style=" visibility:hidden;
            position:absolute;
            background:#ffffcc;
            font:bold 10px/10px verdana ;
            color:black;
            border:solid 1px black;
            text-align:justify;
            padding:10px 10px 10px 10px;">
    </div>

		<table width="770" border="1" cellspacing="0" cellpadding="0" class="tabla" align="center">
				<tr class="row3">
					<td  width="8%">5. Item Number</td>
					<td  width="30%">6. NANDINA</td>
        	<td  width="28%">7. Number and kind of packages; description of goods</td>
          <td  width="17%">Cantidad</td>
					<td  width="17%">8. Origin Criterion (See Notes Overleaf)</td>
				</tr>
    </table>
   	<div id="seccion5">
     <table id="detsec5" width="770" border="1" cellspacing="0" cellpadding="0" class="tabla" align="center">
        <tr class="row2">
			     <td width="8%" rowspan="5"><input name="consece0"  id="consece0" type="text" size="1" maxlength="2" value="1" align="right" class="cajita" disabled/></td>
  				   <td align="center" width="8%">
				       <?php
               		$esq=mysql_query("SELECT e.esq_cod, c.tip_cer_cod FROM certificados c INNER JOIN esquemas e, planilla p ON c.tip_cer_cod=e.tip_cer_cod AND e.esq_cod=p.esq_cod  AND c.tip_cer_cod='$forma' ",$link);
                  $esq1=mysql_fetch_array($esq);
     	            $esquemas= $esq1[0];
          	      $consulta = mysql_query("select * from datos_forma where ter_nit ='$nit' AND esq_cod='$esquemas'", $link);
               ?>
                	<select id="selpar0" name="selpar0" onClick="(document.getElementById('descrip0').value=document.getElementById('selnoa0').options[document.getElementById('selpar0').selectedIndex].text.substr(0,40),document.getElementById('criterio0').value=document.getElementById('selcri0').options[document.getElementById('selpar0').selectedIndex].text.substr(0,15))">
       		                 	</select>
                  <select id="selnoa0" name="selnoa0" style="display:none">
                 </select>
                <select id="selcri0" name="selcri0" style="display:none">
              			</select>
				</td>

			    <td width="30" rowspan="5"><textarea name="descrip0" id="descrip0" type="text" cols="24" rows="7" value="" align="right" onChange="mays(this)">Seleccione la partida </textarea></td>
          <td width="17%"><input name="cantidade0" id="cantidade0" type="text" size="4" maxlength="3" value="" align="right" onChange="mays(this)" class="cajita"/></td>
			 		<td ><input name="criterio0" id="criterio0" type="text" size="15" maxlength="20" value="" class="cajita1"  /></td>
</tr>
    <tr class="row3">
    		 <td>6. Marks and Number of packages</td>
    		 <td>Peso Neto</td>
    		 <td>Gross weight or other quatity</td>
    </tr>
		<tr>
		    <td width="30%" rowspan="5"><textarea name="marca0" id="marca0" type="text" cols="25" rows="3" value="" align="right"></textarea></td>
      	<td><input name="pesoneto0" id="pesoneto0" type="text" size="15" maxlength="20" value="" class="cajita1"/></td>
    		<td><input name="gross0" id="gross0" type="text" size="15" maxlength="20" value="" class="cajita1"/></td>
   	</tr>
   	<tr class="row3">
        <td>Valor FCA</td>
        <td>Number and date of invoices</td>
    </tr>
    <tr>
    	   <td><input name="valorfca0" id="valorfca0" type="text" size="15" maxlength="20" value="" class="cajita1"/></td>
           <td><input name="Fecha0" type="text" id="Fecha0" size="10"  maxlength="10" onChange="mays(this)">
        			<span class="LetraGris"><font style='color:red'>
        			<input name="BtnFechaaa" type="image" id="BtnFechaaa" value="..." src="Imagenes/cal.gif" alt="..:: Seleccione Fecha Origen ::."> </td>
                                <script type="text/javascript">
								Calendar.setup
								(
									{
									inputField  : "Fecha0", // ID of the input field
									ifFormat    : "%Y/%m/%d",    	// the date format
									button      : "BtnFechaaa",       // ID of the button
									align		: "cR",
									date		: new Date()
									}
								);
				          </script>
             </td>
           </tr>
     		</table>
			<table width="760" border="0" cellspacing="0" cellpadding="0"  align="center">
				<tr align="center">
					<td align="center"><input type="button" name="bcanex" id="bcanex" value="Adicionar Articulo" onClick="pre_mostrar_detsec5()"></td>
          <td><input name="numfila5" id="numfila5" type="hidden" size="3" maxlength="3"  disabled class="cajita" /></td>
				</tr>
			</table>
	</div>
</form>
</body>

__________________
:.:Nano.:: @nano_hard - Retornando al foro

Última edición por Nano_; 28/07/2006 a las 13:51
  #4 (permalink)  
Antiguo 28/07/2006, 13:47
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Exclamación

Codigo Javascript
datos.js

Código HTML:
		var resul = 0;
 		var valores = new Array(0);
		var vrcife = new Array(0);
		var con = 0;
		var ind = 0;
		var valorind = 0;
		var valor = 0;
		var num=0;
		var l=1;
		var k=0;
		var q=0;
		var m=1;
		var n=0;
		var o=1;
		var p=0;
		var variable=0;
		var y=0;
		var numerr= 0;
		var w_valida = 0;
		var w_modil= 0;
    var coorX;
		var coorY;


		function valida_vacio(campo1,campo2)
        {
	    	if (campo1.value == "" || campo1.value == " " )
		   	{alert ('DEBE CAPTURAR UN VALOR VALIDO EN '+campo2);
		    campo1.focus()
		   	}
        }


		function valida_vacio1(campo1,campo2)
        {
		var alphaChars="abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
      	for(var i=0; i<campo1.value.length; i++)
         {
          for(var j=0; j<alphaChars.length; j++)
          {
           if(alphaChars.charAt(j)==campo1.value.charAt(i))
 	      {
           break;
          }
         else
          {
          if(j==(alphaChars.length-1))
           {
            alert (campo1.value.charAt(i) + '\tNO ES UN CARACTER VALIDO'+campo2 );
		    campo1.focus()
           }
          }
         }
        }
	 	}

		function valida_vacio2(campo1,campo2)
    	{

	    	if (isNaN(campo1.value))
		   	{alert ('DEBE CAPTURAR UN VALOR VALIDO EN '+campo2);
		    campo1.focus()
		   	}

    	}


		function mostrar_mensaje()
	    {
			alert ('mensaje');
		}


	function pre_mostrar_detsec5()
	{
		var msgconfirm = "AL ADICIONAR NUEVA FILA, LA ACTUAL NO SE PODRA MODIFICAR."+"\n\n"
		msgconfirm +=    "		¿Desea Continuar?"
   if ( confirm(msgconfirm) )
		{
			if ((l-1)==0)
	      {
	        validate_filasec50();
	    		if ( numerr < 1)
			   {
                       deshabilitar_filasec50()	;
                       mostrar_detsec5();
         }
			  }
		}
   }


    // Deshabilita¿Revisaste los logs del servidor?¿Revisaste los logs del servidor?¿Revisaste los logs del servidor?¿Revisaste los logs del servidor?¿Revisaste los logs del servidor?¿Revisaste los logs del servidor?¿Revisaste los logs del servidor? los campos de la forma
    function  deshabilitar_filasec50()
	{
		document.getElementById('cantidade0').disabled=true;
	}

		function mostrar_detsec5()
		{
		var objTablae = document.getElementById("seccion5");
   	var objTbodye=objTablae.firstChild;
		var objNuevaFilae=objTbodye.childNodes[0].cloneNode(true);

		objTbodye.appendChild(objNuevaFilae);
		k = l + 2;
		document.getElementById('secuencia0'+2).value=k;
    l++;
		}


   //Funcion que valida los datos dentro de la Partida Arancelaria

   function validate_filasec50()
   {
   	var Validar = new clsValidator();
    numerr = 0;
   	Validar.setEncabezado("** LA LINEA ACTUAL DE LA SECCION 5 TIENE LOS SIGUIENTES ERRORES  **");
   	Validar.setErrorColor("#FFFFCC");

		Validar.Vacio("marca0", "Debe llenar 6. La(s) Marca(s) y el Numero de Paquete(s).");
 		Validar.Vacio("descrip0", "Debe llenar 7. numero y clñase de bultos; descripcion de la mercancia");
	  Validar.Vacio("cantidade0", "Debe llenar  El peso de las mercancias");
	  Validar.Vacio("criterio0", "Debe llenar 6. La(s) Marca(s) y el Numero de Paquete(s).");
    Validar.Vacio("pesoneto0", "Debe llenar 6. La(s) Marca(s) y el Numero de Paquete(s).");
    Validar.Vacio("gross0", "Debe llenar 6. La(s) Marca(s) y el Numero de Paquete(s).");
    Validar.Vacio("Fecha0", "Debe llenar 6. La(s) Marca(s) y el Numero de Paquete(s).");
    Validar.Vacio("valorfca0", "Debe llenar 6. La(s) Marca(s) y el Numero de Paquete(s).");

    if (Validar.Validar()) alert("Fila Actual de la Seccion 5, Diligenciada Correctamente");
		else Validar.getErrors();
    }


// funciones seccion 13
		function calcula_tot13()
		{
			var res131=document.forma10.turnos.value;
			var res132=document.forma10.capturno.value;

			resul= parseInt(res131) * parseInt(res132);
			document.getElementById('tot131').value=resul;
		}



// FUNCIONES GENERALES
	function manita(cual)
	{
		cual.style.cursor='hand';
	}

	function flecha(algo)
	{
		//document.forma10a.algo.style.cursor='default';
		algo.style.cursor='default';
	}

	function valida_select(campo1,campo2)
    {
	    if (campo1.value == "")
		   {alert ('DEBE SELECCIONAR UN ITEM DE '+campo2);
		    campo1.focus()
		   }
    }

 	function NumberFormat(num, numDec, decSep, thousandSep)
		{
      		var arg;
		    var Dec;
		    Dec = Math.pow(10, numDec);
		    if (typeof(num) == 'undefined') return;
		    if (typeof(decSep) == 'undefined') decSep = ',';
		    if (typeof(thousandSep) == 'undefined') thousandSep = '.';
		    if (thousandSep == '.')
		     arg=/./g;
		    else
		     if (thousandSep == ',') arg=/,/g;
		    if (typeof(arg) != 'undefined') num = num.toString().replace(arg,'');
		    num = num.toString().replace(/,/g, '.');
		    if (isNaN(num)) num = "0";
		    sign = (num == (num = Math.abs(num)));
		    num = Math.floor(num * Dec + 0.50000000001);
		    cents = num % Dec; 		    num = Math.floor(num/Dec).toString();

			var dmax = Dec.toString();
			dmax = dmax.length;
			var dmin = cents.toString();
			dmin = dmin.length;

			var ndec = (dmax - dmin) - 1;

		    if (cents < (Dec / 10))
				var nceros = '';
				if (ndec > 0)
					{for (var i = 1; i <= ndec; i++)
						nceros += "0";
			        cents = nceros + cents;
					}

//			alert('cadena de ceros a unir '+nceros+' '+'Ultima '+cents);
		    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
		     num = num.substring(0, num.length - (4 * i + 3)) + thousandSep + num.substring(num.length - (4 * i + 3));
		    if (Dec == 1)
		     return (((sign)? '': '-') + num);
		    else
		     return (((sign)? '': '-') + num + decSep + cents);
		}

	 function EvaluateText(cadena, obj)
		{
		    opc = false;
		    if (cadena == "%d")
		     if (event.keyCode > 47 && event.keyCode < 58)
		      opc = true;
		    if (cadena == "%f")
			{
		     if (event.keyCode > 47 && event.keyCode < 58)
		      opc = true;
		     if (obj.value.search("[.*]") == -1 && obj.value.length != 0)
		      if (event.keyCode == 46)
		       opc = true;
		    }
		    if(opc == false)
		     event.returnValue = false;
		}

	function maximaLongitud(texto,maxlong)
	    {
		var tecla, in_value, out_value;
        if (texto.value.length > maxlong)
		{
		    in_value = texto.value;
		    out_value = in_value.substring(0,maxlong);
		    texto.value = out_value;
		    return false;
  		}
		  return true;
		}
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #5 (permalink)  
Antiguo 28/07/2006, 13:48
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Código HTML:
function mays(campo)
	{
      campo.value = campo.value.toUpperCase();
    }
function validate()
	{
		var Validar = new clsValidator();
		numerr = 0;
		Validar.setEncabezado("** Se encontraron los siguientes errores en el formulario 25**");
		Validar.setErrorColor("#FFFFCC");
//  VALIDA SECCION 0
		Validar.Vacio("ofiminco", "Debe llenar Oficina");
//  VALIDA SECCION 1
		Validar.Vacio("razon", "Debe llenar 1.1 Razon Social ");
		Validar.Vacio("nit", "Debe llenar 1.2 Nit ");
		Validar.Vacio("direccion", "Debe llenar 1.3 Dirección");
		Validar.Vacio("telef", "Debe llenar 1.3 Telefonos");
		Validar.Vacio("nomciudad", "Debe llenar 1.3 Ciudad");
		Validar.Email("email", "El email de 1.3 no es válido");
		Validar.Vacio("replegal", "Debe llenar 1.4 Representante Legal");
		Validar.Vacio("cargo", "Debe llenar 1.4 Cargo");

//  VALIDA SECCION 5
  		Validar.Vacio("secuencia0", "Debe llenar 5.1 Nombre Tecnico");
  		Validar.Vacio("descrip0", "Debe llenar 5.1 Subpartida");
  		Validar.Vacio("cantidade0", "Debe llenar 5.1 Pais de Origen");
  		Validar.Vacio("criterio0", "Debe llenar 5.1 Pais de Procedencia");
  		Validar.Vacio("marca0", "Debe llenar 5.1 Unidad de Medida");
  		Validar.Vacionum("pesoneto0", "Debe llenar 5.1 Cantidad");
  		Validar.Vacionum("gross0", "Debe llenar 5.1 Valor CIF");
    	Validar.Vacionum("valorfca0", "Debe llenar 5.1 Valor Planta");
			Validar.Vacionum("fecha0", "Debe llenar 5.1 Valor Planta");

    var cont = document.getElementById('numfila5').value
		if (cont > 0)
		{
		   for(p=1;p<=cont;p++)
			{
                var q = p+1;
			    var campo = "Debe llenar 5."+q+" Nombre Tecnico";
				Validar.Vacio(document.getElementById('secuencia'+p).name,campo);
				campo = "Debe llenar 5."+q+" Subpartida";
				Validar.Vacio(document.getElementById('descrip'+p).name,campo);
				campo = "Debe llenar 5."+q+" Pais Origen";
				Validar.Vacio(document.getElementById('candidade'+p).name,campo);
				campo = "Debe llenar 5."+q+" Pais Procedencia";
				Validar.Vacio(document.getElementById('criterio'+p).name,campo);
				campo = "Debe llenar 5."+q+" Unidad de Medida";
				Validar.Vacio(document.getElementById('marca'+p).name,campo);
				campo = "Debe llenar 5."+q+" Cantidad ";
				Validar.Vacionum(document.getElementById('pesoneto'+p).name,campo);
				campo = "Debe llenar 5."+q+" Valor CIF";
				Validar.Vacionum(document.getElementById('gross'+p).name,campo);
				campo = "Debe llenar 5."+q+" Valor Planta";
				Validar.Vacionum(document.getElementById('valorfca'+p).name,campo);
        campo = "Debe llenar 5."+q+" Valor Planta";
				Validar.Vacionum(document.getElementById('Fecha'+p).name,campo);


			}
		}

//  VALIDACION FINAL
		if (Validar.Validar()) alert("Documento Diligenciado Correctamente");
		else Validar.getErrors();
	}


function clsValidator()
{
	/* Data members */
	this.msgError="";			// Return the msg error
	this.errorColor="";			//error color Format: #00708c
	this.error = false;

	/* Methods */
	
	function setEncabezado(head)
	{
		this.head = head;
	}
	

	function AgregarError() {
		this.error=true;
		numerr++;
		this.msgError += "* "+" "+numerr+". "+arguments[0]+"\n";
		for (var y=1; y < arguments.length ; y++)
		{
			document.getElementById(arguments[y]).style.backgroundColor=this.errorColor;
		}
	}
	///////////////////////////////////////////////////////////

	function EliminarError()
	{
		for (var y=0; y < arguments.length ; y++)
		{
			document.getElementById(arguments[y]).style.backgroundColor="";
		}
	}
	

	function setErrorColor(color)
	{
		this.errorColor = color;
	}

	///////////////////////////////////////////////////////////

	function Vacio(field,msg)
	{
		this.EliminarError(field);
		if (document.getElementById(field).value.replace(/ /g, '') == "")
		{
			this.AgregarError(msg, field);
			return false
		}
		return true
	}
	


	function Vacionum(field,msg)
	{
		this.EliminarError(field);
		if (document.getElementById(field).value <= 0)
		{
			this.AgregarError(msg, field);
			return false
		}
		return true
	}
	///////////////////////////////////////////////////////////

	function Porcentaje(field,msg)
	{
		this.EliminarError(field);
		if ( (document.getElementById(field).value > 100)  || (document.getElementById(field).value.length > 6) )
		{
			this.AgregarError(msg, field);
			return false
		}
		return true
	}
	
    function Vaciosec4(field,msg)
	{
		this.EliminarError(field);
        if ( (document.getElementById('biencap').value == "") && (document.getElementById('matpri').value == "")
		      && (document.getElementById('servicio').value == ""))
		{
			this.AgregarError(msg, field);
			return false
		}
		return true
	}

    function Sumasec7(field,msg)
	{
	   	var valor71 = document.getElementById('vr71').value
		var valor72 = document.getElementById('vr72').value
		var valor511 = document.getElementById('tot5112').value
		var suma1 = parseInt(valor71) + parseInt(valor72) + parseInt(valor511)
	   	var valor7a = document.getElementById('vr7a').value
		var valor7b = document.getElementById('vr7b').value
		var suma2 = parseInt(valor7a) + parseInt(valor7b)
		this.EliminarError(field);
        if ( suma2 < suma1 )
		{
			this.AgregarError(msg, field);
			return false
		}
		return true
	}
	//////////////////////////////////////////////////////////

	function Email(field,msg)
	{
		this.EliminarError(field);
		var re  = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
		if (!re.test(document.getElementById(field).value)) {
			this.AgregarError(msg, field);
			return false
		}
		return true
	}
	

	function Fecha(field, msg)
	{
		this.EliminarError(field);
		var datePat = /^([0-9]{2})\/([0-9]{2})\/([0-9]{4})?$/;
		var matchArray = document.getElementById(field).value.match(datePat);
		var ok = true;

		if (matchArray == null) ok = false;
		else
		{
			day = matchArray[1];
			month = matchArray[2];
			year = matchArray[3];

			if ((day < 1  || day > 31) || (month < 1 || month > 12) || (year < 1)) ok = false;
			if ((month ==2 || month == 4 || month == 6 || month ==9 || month ==11) && (day > 30)) ok = false;

			if (month == 2)
			{
				bisiesto = (parseInt (year/4))*4
				if ((year != bisiesto) && (day > 28)) ok = false;
				if ((year == bisiesto) && (day > 29)) ok = false;
			}
		}
		if (ok) return true
		else
		{
			this.AgregarError(msg, field);
			return false;
		}
	}


	function Iguales(field1, field2, msg)
	{
		this.EliminarError(field1,field2);
		if(document.getElementById(field1).value != document.getElementById(field2).value)
		{
			this.AgregarError(msg, field1, field2);
			return false
		}
		return true
	}


	function Longitud(field, operator, length, msg)
	{
		this.EliminarError(field);
		if (operator == "=") operator = "==";
		if ( !(eval("document.getElementById(field).value.length "+operator+" length")) )
		{
			this.AgregarError(msg, field);
			return false
		}
		return true
	}


	function Validar()
	{
		return !this.error;
	}


	function getErrors()
	{
		alert(this.head+"\n\n"+this.msgError);
	}
	///////////////////////////////////////////////////////////

	this.setEncabezado = setEncabezado;
	this.setErrorColor = setErrorColor;
	this.getErrors = getErrors;
	this.AgregarError = AgregarError;
	this.EliminarError = EliminarError;
	this.Vacio = Vacio;
	this.Vacionum = Vacionum;
	this.Porcentaje = Porcentaje;
	this.Vaciosec4 = Vaciosec4
	this.Sumasec7 = Sumasec7
	this.Email = Email;
	this.Fecha = Fecha;
	this.Iguales = Iguales;
	this.Longitud = Longitud;
	this.Validar = Validar;

}

function validate_O()
	{
		var Validar = new clsValidator();
		numerr = 0;
		Validar.setEncabezado("** Se encontraron los siguientes errores en el formulario **");
		Validar.setErrorColor("#FFFFCC");
	//	Validar.Vacio("nombre_exp", "Debe llenar 1.1  El Nombre  ");

    Validar.Vacio("direccion_exp", "Debe llenar 1.2  la Direccion  ");
		Validar.Vacio("nombre_imp", "Debe llenar 2.1  El Nombre  ");
		Validar.Vacio("direccion_imp", "Debe llenar 2.2  La Direccion ");
		Validar.Vacio("telefono_imp", "Debe llenar 2.3  El Telefono  ");
		Validar.Vacio("medio_trans", "Debe llenar 3  El Medio de Transporte");

//  VALIDA SECCION 3

		if (Validar.Validar())
			{
			//.style.display='none'

		     alert("Documento Diligenciado Correctamente");
			w_valida = 1;
			habilita_graba();
	         document.getElementById('valida').style.display='none';
			}
			else Validar.getErrors();

	}

function deshabilita_graba()
	{
          document.getElementById('graba').style.display='none';
	}

function habilita_graba()
	{
          document.getElementById('graba').style.display='block';
	}



function deshabilita_imput()
{
campos=document.getElementById('seccion1').getElementsByTagName('input');
for (x=0;x<campos.length;x++)
{
campos[x].disabled=true;
}
}
function deshabilita_pais()
{
campos=document.getElementById('seccion1').getElementsByTagName('select');
for (x=0;x<campos.length;x++)
{
campos[x].disabled=true;
}
}

function deshabilita_mediotrans()
{
campos=document.getElementById('seccion1').getElementsByTagName('textarea');
for (x=0;x<campos.length;x++)
{
campos[x].disabled=true;
}
}
Bueno aqui va la otra parte espero que me puedan dar una mano ya que llevo un par de dias tratando de arreglar el problema y no e podido .

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #6 (permalink)  
Antiguo 15/08/2006, 14:41
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
para que me entiendan mejor aqui le dejo este link http://andres.pereirap.iespana.es/Nodo/
haber si tienen una idea de como poder realizarlo con solo php..
Gracias
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #7 (permalink)  
Antiguo 15/08/2006, 19:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Con PHP debes tener presente que implicaria una recarga de pàgina .. es decir: hacer un "submit" de los datos que puedas tener, recibirlos en tu script PHP y este genere un formulario igual a lo que tenías + una nueva fila(s) de esa tabla con más "input" del formulario nuevos .. Todos los elementos tratados como "arrays" (name="comosea[]") ..

Lo principal es la "recarga de página" .. Si eso no te importa y asumes toda la gestion en PHP de toma de valores de lo que "tenías" hasta llegar a completar tus N registros a ingresar .. avisa y vemos como desarrollarlo.

Otras soluciones son:
1) Consulta en el foro de javascirpt como solventar tu problema de "clanación" incorrecto.
2) Usar Ajax: para hacer llegar los datos al servidor en forma transparente (sin recarga de pàgina) e ir presentandolos (los que tienes en el servidor) .. aquì tambièn habrá alto contenido "javascript/DHMTL" para los efectos "visuales".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 24/08/2006, 14:09
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Cita:
Lo principal es la "recarga de página" .. Si eso no te importa y asumes toda la gestion en PHP de toma de valores de lo que "tenías" hasta llegar a completar tus N registros a ingresar .. avisa y vemos como desarrollarlo.
Saludos trate de desarrollarlo con ajax pero no pude . entonces e tomado la decision de realizarlo todo con php.. espero que mepuedan dar una mano...

Anexo Html

Código HTML:
<head>
</head>
<body onload="deshabilita_graba()" background="Imagenes/fondo.jpg">
    <title></title>
         <table id="detsec5" width="770" border="1" cellspacing="0" cellpadding="0" class="tabla" align="center">
    <tr><td>&nbsp;</td></tr>
        <tr class="row3">
					<td  width="8%">5. Item Number</td>
					<td  width="30%">6. NANDINA</td>
        	<td  width="28%">7. Number and kind of packages; description of goods</td>
          <td  width="17%">Cantidad</td>
					<td  width="17%">8. Origin Criterion (See Notes Overleaf)</td>
				</tr>
        <tr class="row3">
			     <td width="8%" rowspan="5"><input name="secuencia0" id="secuencia0" type="text" size="2" maxlength="2" value="1" align="right" class="cajita1" disabled/></td>
     	     <td align="center" width="8%" rowspan="2">
     	     	<?php
            //Consulta de Esquemas
               $esq=mysql_query("SELECT ............' ",$link);
               $esq1=mysql_fetch_array($esq);
               $esquemas= $esq1[0];
               $consulta = mysql_query("select .........., $link);
          	?>
     	     <select id="selpar0" name="selpar0" size="1" onClick="(document.getElementById('descripcion_norma').value=document.getElementById('selnoa0').options[document.getElementById('selpar0').selectedIndex].text.substr(0,40),document.getElementById('criterio0').value=document.getElementById('selcri0').options[document.getElementById('selpar0').selectedIndex].text.substr(0,15))">
          <?php
               //Consulta de Codigo Arancelario
				   	while ($fila = mysql_fetch_array($consulta))
					  {
				    	  echo "<option>" . $fila['ara_cod'] . "</option>";
					  }
				  ?>
				</select>
				<select id="selnoa0" name="selnoa0" style="display:none">
				  <?php
           //Consulta de Nombre del Codigo Arancelario
	         $consulta = mysql_query("select ......'", $link);
				   	while ($fila = mysql_fetch_array($consulta))
					  {
				    	echo "<option>" . $fila[] . "</option>";
					  }
				  ?>

				</select>
				<select id="selcri0" name="selcri0" style="display:none">
				  <?php
// 					Consulta de Criterio de Origen
	               $consulta = mysql_query("select ..........'", $link);
					while ($fila = mysql_fetch_array($consulta))
					{
				    	echo "<option>" . $fila['nor_cod'] .' '.$fila['nor_des'] . "</option>";
					}
				  ?>
				</select>
				</td>
		       <td width="30" rowspan="5"><textarea name="descrip0" id="descrip0" type="text" cols="24" rows="7" value="" align="right" onChange="mays(this)" ></textarea> </td>
           <td width="17%"><input name="cantidade0" id="cantidade0" type="text" size="4" maxlength="3" value="" align="right" onChange="mays(this)" class="cajita1"/></td>
			 	   <td><input name="criterio" id="criterio" type="text" size="15" maxlength="20" value="" class="cajita1"/></td>
         </tr>
        <tr class="row3">
     		 <td>Peso Neto</td>
    		 <td>Gross weight or other quatity</td>
       </tr>
       <tr class="row3">
        <td>6. Marks and Number of packages</td>
		   	<td><input name="pesoneto0" id="pesoneto0" type="text" size="15" maxlength="20" value="" class="cajita1"/></td>
    		<td><input name="gross0" id="gross0" type="text" size="15" maxlength="20" value="" class="cajita1"/></td>
   	   </tr>
   	   <tr class="row3">
        <td rowspan="2"><textarea name="marca0" id="marca0" type="text" cols="25" rows="3" value="" align="right"></textarea></td>
        <td>VAlor FCA</td>
        <td>Number and date of invoices</td>
       </tr>
       <tr>
    	   <td><input name="valorfca0" id="valorfca0" type="text" size="15" maxlength="20" value="456456" class="cajita1"/></td>
         <td><input readonly name="fecha0" type="text" id="fecha0" size="10" class="cajita1" maxlength="10" >
        		 <span class="LetraGris"><font style='color:red'>
			     <input name="BtnFecha1" type="image" id="BtnFecha1" value="..." src="Imagenes/cal.gif" alt="..:: Seleccione Fecha Desde ::.">
      			</font> </span>
			    		  <script type="text/javascript">
								Calendar.setup
								(
									{
									inputField  : "fecha0", 		// ID of the input field
									ifFormat    : "%Y/%m/%d",    	// the date format
									button      : "BtnFecha1",       // ID of the button
									align		: "cR",
									date		: new Date()
									}
								);
							</script>
                                		 </td>
        </tr>
  </table>
  
  
<center>
<input type="button" value="Añadir Articulo" style="font-size: 10px" onclick="pre_mostrar_detsec5()" />
</center>
</form>
 </body>

__________________
:.:Nano.:: @nano_hard - Retornando al foro

Última edición por Nano_; 24/08/2006 a las 14:15
  #9 (permalink)  
Antiguo 24/08/2006, 14:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. con PHP ya te comenté que si quieres repetir N veces una "fila" de datos (input de formulario) que tienen relación (un "registro con sus N campos") y así sucesivamente ..tanto para ingresar datos o como para editarlos, lo primero que debes hacer es llamar como nombre de tus objetos de formulario tipo "array":

bucle(....){
<select name="nombre[]">
...
</select>
<input type="text" name="otro[]">
etc con otros elementos ...
}

Con un bucle (for? .. como quieras) compones N "registros" a ingresar (puede ser esta una opción).

Si sólo quieres tener un formulario con un "registro" a editar .. no uses nombre de tus elementos como "array", crea una sola entrada y listo. En este caso los datos que vas recogiendo los tienes que ir almacenando en un array y a su vez llevarlos a una variable de sesión. Esto es como funciona un "carrito de compras" común .. por un lado un formulario común (que abres en una ventana o tienes en una página cualquiera) y todo gestionado sobre una variable de sesión (array).

No sé que método prefieres .. ¿Dominias sesiones en PHP? ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 24/08/2006, 14:55
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
hola cluster te agradezco por tu ayuda.. Pues yo tambien lo habia pensado realizar con un ciclo for.... Por otro lado no se si me puedas dar un ejemplo muy basico de como es que me indicas que lo realize con...

Cita:
En este caso los datos que vas recogiendo los tienes que ir almacenando en un array y a su vez llevarlos a una variable de sesión
Gracias!!..
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #11 (permalink)  
Antiguo 24/08/2006, 15:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sería algo así ..

Código PHP:
<?
// Inicio uso sesiones (asumo que propago el SID en cookies).
session_start(); 
// validamos que se enviaron datos ...
if (!empty($_POST['submit'])){
  
// almacenas los datos en la sesión (en forma de array asociativo):
  
$_SESSION['datos'][]['campo1'] = $_POST['campo1'];
  
$_SESSION['datos'][]['campo2'] = $_POST['campo2'];
  
// redireccionamos para salvar los datos en la sesión ....
  
header ("Location: ".$_SERVER['PHP_SELF']);
  exit;
} else {
  
// Muestro los datos de la sesión (es un array .. ) 
  
echo "<pre>";
  
print_r($_SESSION['datos']);
  echo 
"</pre><br><br>";
}

// Presento siempre el formulario HTML .. 
?>
<form action="<? echo $_SERVER['PHP_SELF'?>" method="POST">
Campo 1 <input type="text" name="campo1">
Campo 2 <input type="text" name="campo2"><br>
<input type="submit" name="submit" value="enviar">
</form>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 24/08/2006 a las 17:41
  #12 (permalink)  
Antiguo 24/08/2006, 16:26
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
hola cluster ... Sera que me puedes explicar mejor el codigo que me muestras la verdad no e hecho algo similar ..

GRacias
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #13 (permalink)  
Antiguo 24/08/2006, 17:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Nano_ Ver Mensaje
hola cluster ... Sera que me puedes explicar mejor el codigo que me muestras la verdad no e hecho algo similar ..

GRacias
¿Conoces que es una sesión? (debemos partir por el conocimiento de estas).
¿y de manejo de arrarys (arreglos, matrices ..)?

En su base lo que hago es lo que ya expliqué:

1) Se maneja un array bidimensional asociativo (por que la sesiòn en si es un array).
2) Se van insertando elementos a dicho array.

Disculpa por qué el còdigo original tiene un error:

No deberìa ser:
Código PHP:
//almacenas los datos en la sesión (en forma de array asociativo): 
  
$_SESSION['datos']['campo1'] = $_POST['campo1']; 
  
$_SESSION['datos']['campo2'] = $_POST['campo2']; 
sino:
Código PHP:
  // almacenas los datos en la sesión (en forma de array asociativo): 
  
$_SESSION['datos'][]['campo1'] = $_POST['campo1']; 
  
$_SESSION['datos'][]['campo2'] = $_POST['campo2']; 
Para crear un array bidimensional (desde el de sesiòn).

Tal vez te quede màs claro:
Código PHP:
$campos[]['campo1'] = $_POST['campo1'];
$campos[]['campo2'] = $_POST['campo2'];

$_SESSION['datos'] = $campos
Pero es lo mismo.

Tambien habìa un pequeño problema con el punto de concatenaciòn .. en:

Código PHP:
 header ("Location: ".$_SERVER['PHP_SELF']); 
(debe quedar asì).


Lo que faltò es un "botón" tipo "terminar proceso de ingreso de datos .. guardar todo" .. Esto iría en el "else" del if() .. mejor hacia un script que haga dicho proceso aparte

Código PHP:
} else {
  // Muestro los datos de la sesión (es un array .. )  
  echo "<pre>"; 
  print_r($_SESSION['datos']); 
  echo "</pre><br><br>"; 
?>
<a href="procesar.php">Guardar datos o procesarlos todos .. </a>
<?
}
En procesar.php tomo los valores de mi sesión y hago el proceso .. por ejemplo llevarlo a una BBDD:

procesar.php
Código PHP:
<?
session_start
();

// recorrer el array..
foreach ($_SESSION['datos'] as $campos){
   echo 
"Campo 1".$campos['campo1']."<br>";
   echo 
"Campo 2".$campos['campo1']."<br><br>";

   
// ya tienes tus campos por separado como para hacer un "INSERT" a una tabla de una BBDD o lo que requieras.

}

?>
Lo mejor es que pruebes el còdigo, creo que lo veras màs claro funcionando. Sino, .. preguta dudas concretas sobre alguna parte del código expuesto.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 25/08/2006, 11:26
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Hola cluster.. Ya entendi bien el codigo que me enviaste pero como tal ese solucionaria una parte de lo que necesito sacar..... Te expongo las siguientes dudas que tengo que la verdad no se como organizarlo con la estructura de codigo que ya tengo actualmente..

1. Utilizando tu mismo ejemplo como hago para validar que los campos sean correctamente digitados e ir adicionando y tambien que se deshabiliten todos los campos..

2. Teniendo en cuenta que el formulario no es solo esa parte y que ademas las parte que estamos solucionando tiene una funcionalidad de que por medio de un select se cargan unos input.. Anexo codigo para que me entiendas mejor...

Como puedo hacer para que al momento que se esten adicionando el nuevo bloque de campos el arreglo qeu se valla desarrollando me siga manejando esta mismca funcionalidad...

Código PHP:
               print ("<select id=\"Pais\" name=\"Pais\" class =\"campos\" onchange=\"submit();\"> ");
                            
//Muestra el combobox de las partidas arancelarias..
                           
if (!isset($Pais)){
                           print (
"<option selected>Partida Arancelaria</option>");
                           
$Pais="0";
                            }
                            
$sql="select * from datos_forma where ter_nit ='16077570' GROUP BY ara_cod";
                            
$res=mysql_query($sql,$link);
                            while(
$fila=mysql_fetch_array($res)){
                            print(
"<option value=\"$fila[ara_cod]\"");
                            if (
$fila[ara_cod] == $Pais) {
                            print (
"selected");
                            }
                            print(
">$fila[ara_cod]</option>\n");
                            }
                            print(
"</select></td></tr>"); 
Código PHP:
                  if ($Pais!="0"){
                          print(
"
                <table id=\"detsec6\" width=\"770\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" class=\"tabla\" align=\"center\">
                <tr class=\"row3\">
                <td>Numero</td>
                <td>Descripcion</td>
                <td>Norma</td>
                </tr>

                      "
);
              
$sqlprov="SELECT * FROM datos_forma where ara_cod='$Pais'";
                            
$resprov=mysql_query($sqlprov,$link);
                            while(
$filaprov=mysql_fetch_array($resprov)){
                            print(
"<tr align=\"left\"><td><input type=\"checkbox\" name=\"prueba\"></td><td><input type=\"text\" name=\"norma\" value=\"$filaprov[nor_des]\" size=\"50\"></td><td><input type=\"text\" id=\"Departamentos\" size=\"50\" name=\"Departamentos\" value=\"$filaprov[ara_det]\"</td></tr>");
                   }
              print(
"</table>");
                    } 
bueno espero que me halla dado a entender y me puedas seguir dando una mano..

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #15 (permalink)  
Antiguo 25/08/2006, 11:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
1) Con javascript .. si pretendes realizar validaciones -antes- de enviar tus datos y sobre todo para "activar" o desactivar algún que otro campo en función del estado de otros campos del formulario.

Si algún dato a validar está en el "servidor" (datos ya introducidos que están en la sesión o que hay que consultarlos a la BBDD); esa comprobación o la haces en el proceso PHP o lo ejecutas con AJAX (en forma "transparente").

2). No te entendí.

Vía el formulario (el que ves que "adiciona" un sólo registro por vez) se va generando el array en la sesión como ves para almacenar los datos que vas ingresando -de a uno- hasta que decidas terminar el proceso de ingreso de datos "temporalmente" (en la sesión) para luego hacer lo que tengas que hacer con ellos finalmente (llevarlos a una BBDD o lo que sea).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #16 (permalink)  
Antiguo 25/08/2006, 13:18
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
3. Como puedo hacer para que los campos que valla enviando al array me los muestre con la misma estructuctura que tengo en el table (html). Algo muy similar como lo muestras en tu ejemplo, que me da a conocer en que parte del arreglo esta quedando el dato solo que esta vez me gustaria que quedara mas organizado exactamente que me la muestre con misma estructura con la que yo inserto los datos... Esto con el fin de que si el cliente se equivoca en "añadir" un conjunto de campos que no queria lo pueda borrar.
4. Al momento de hacer el insert(sql) como hago para llamar el array..

Gracias
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Última edición por Nano_; 25/08/2006 a las 13:26
  #17 (permalink)  
Antiguo 25/08/2006, 13:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Nano_ Ver Mensaje
3. Como puedo hacer para que los campos que valla enviando al array me los muestre con la misma estructuctura que tengo en el table (html). Algo muy similar como lo muestras en tu ejemplo, que me da a conocer en que parte del arreglo esta quedando el dato solo que esta vez me gustaria que quedara mas organizado exactamente que me la muestre con misma estructura con la que yo inserto los datos... Esto con el fin de que si el cliente se equivoca en "añadir" un conjunto de campos que no queria lo pueda borrar.
4. Al momento de hacer el insert(sql) como hago para llamar el array..

Gracias
Pues con el código que te presenté en procesar.php (de mis anteriores ejemplos) .. ese bucle foreach() lee la estructura del array .. ahora tú lo adornas con el HTML que quieras (tus definiciones de <tr> .. <td ..>) para darle forma como tabla HTML a esos datos ..

También por el mismo método tendrás que obtener un "identificador" del elemento que quiera "borrar" si se equivocó o incluso para implementar una opción de "edición" de un registro concreto que se equivocó el usuario.

El "identificador" ya lo tienes .. (lo que pasa que yo en mi ejemplo anterior no lo saqué por qué no me hacía falta antes ...).

Código PHP:
foreach ($_SESSION['datos'] as $identificador=>$campos){
  echo 
"Identificador: ".$identificador."<br>";
  echo 
"Campo 1".$campos['campo1']."<br>"
  echo 
"Campo 2".$campos['campo1']."<br><br>";  

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 05/09/2006 a las 19:31
  #18 (permalink)  
Antiguo 29/08/2006, 08:51
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Exclamación

BAsicamente lo qeu ocurre es que ingreso dos datos (CAmpo1 , Campo2)estos me los guarda en una matriz cuando los envio no ahi problema pero cuando oprimo sobre <a href="procesar.php">Guardar datos o procesarlos todos .. </a> me deberia traer los datos del array.. Pues en realidad lo esta haciendo lo que quiero es que no me los genere

CAmpo 1 lleno campo 1
Campo 2
Campo 1
Campo 2 lleno campo 2

sino que solamente sobre el primer Campo1, Campo2 me muestre ahi los datos que yo le asigne a cada uno por ejemplo:

Campo 1 lleno campo 1
Campo 2 lleno campo 2

bueno espero qeu me halla dado a entender ...

Saludos
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #19 (permalink)  
Antiguo 29/08/2006, 09:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si te entendí: .. controla que el "campo" que estás presentando tenga datos para visutalizarlo o resto de proceso viendo su contenido:

Código PHP:
if (!empty($campos['campo1'])){
   echo 
"Campo 1".$campos['campo1']."<br>";

OJO con empty() si necesitas poner un valor "0" no lo veras ..

Y así con el resto ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #20 (permalink)  
Antiguo 30/08/2006, 09:23
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Exclamación

hola cluster te agradezco por la ayuda que me has brindado..
Ahora tengo otro inconveniente ...

mira tengo el siguiente codigo
Código HTML:
<body>
<?
// Inicio uso sesiones (asumo que propago el SID en cookies).
session_start();
// validamos que se enviaron datos ...
if (!empty($_POST['submit'])){
// almacenas los datos en la sesión (en forma de array asociativo):
  $_SESSION['datos'][]['seleccion'] = $_POST['seleccion'];
  $_SESSION['datos'][]['campo1'] = $_POST['campo1'];
  //$_SESSION['datos'][]['campo2'] = $_POST['campo2'];
  // redireccionamos para salvar los datos en la sesión ....
header ("Location: ".$_SERVER['PHP_SELF']);
  exit;
} else {
  // Muestro los datos de la sesión (es un array .. )
  echo "<pre>";
  print_r($_SESSION['datos']);
  echo "</pre><br><br>";
?>
<a href="procesar1.php">Guardar datos o procesarlos todos .. </a>
 <?
}
// Presento siempre el formulario HTML ..
?>
<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="POST">
	<?php
					// conectamos con el servidor
					require ("servidor.inc");
					// comprobamos que hemos estabecido conexión en el servidor
					if (! $link) {
				    echo "<h2 align='center'>ERROR: Imposible establecer conexión con el servidor intente mas tarde</h2>";
			    	exit;
					}
					// NO OLVIDAR CONECTARSE CON LA BASE DE DATOS
					mysql_select_db($basedatos, $link);
				?>
<?
 $resultado=mysql_query("SELECT * FROM datos_forma", $link);
?>
  <?
    while ($row = mysql_fetch_array($resultado)){
    echo "<input type=\"checkbox\" name=\"seleccion[]\" value=\"".$row['id_datos_forma']."\"><input type=\"text\" name=\"campo2\" value=\"".$row['ara_det']."\"><br>";
    }
  ?>


Campo 1 <input type="text" name="campo1">
<br>
<input type="submit" name="submit" value="enviar">
<?// Generamos una lista de los ID's (campo value= ..) que tenemos en nuestro array.
$lista=implode(',',$_POST['seleccion']);
echo $lista;
?>
</form>
</body> 
Pero me aparece el siguiente error
Cita:
Warning: implode(): Bad arguments. in c:\appserv\www\ubuntu\disenosarancel\prueba1.php on line 52
Este error me sale desde que abro la pagina.. al momento que hago el "submit" me esta haciendo lo qeu quiero pero me sigue saliendo ese error y no entiendo por que..si Saben que significa ese error y que puedo hacer para solucionarlo se los agradecere..

Hasta Pronto!!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #21 (permalink)  
Antiguo 30/08/2006, 09:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Según tu código .. al iniciar tu página (ese código) . .$_POST no contiene ningún valor .. ni un array que es lo que necesita obligatoriamente implode()

Por ende .. deberías hacer validaciones tipo:

Código PHP:
if (!empty($_POST['seleccion'])){
  
$lista=implode(',',$_POST['seleccion']);
  echo 
$lista;

Es decir .. si "existe" nuestra variable "seleccion" .. (que sólo existirá cuando envies tu formulario) .. ahí proceso y uso esa variable .. antes no.

Por otro lado .. revisa el comportamiento del sistema .. no recuerdo si al seleccionar sólo una opción devuelve un "array" o no .. en tal caso existen funciones para ver si tu variable es un array o no (is_array() si mal no recuerdo) como para aplicar el proceso que corresponda en ese caso).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #22 (permalink)  
Antiguo 30/08/2006, 15:57
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
hola cluster. De nuevo gracias y gracias.. ahora tengo otro inconveniente mira.. si te acuerdas una pregunta que hize con anterioridad que decia


Cita:
BAsicamente lo qeu ocurre es que ingreso dos datos (CAmpo1 , Campo2)estos me los guarda en una matriz cuando los envio no ahi problema pero cuando oprimo sobre <a href="procesar.php">Guardar datos o procesarlos todos .. </a> me deberia traer los datos del array.. Pues en realidad lo esta haciendo lo que quiero es que no me los genere

CAmpo 1 lleno campo 1
Campo 2
Campo 1
Campo 2 lleno campo 2

sino que solamente sobre el primer Campo1, Campo2 me muestre ahi los datos que yo le asigne a cada uno por ejemplo:

Campo 1 lleno campo 1
Campo 2 lleno campo 2

bueno espero qeu me halla dado a entender ...
y tu me respondiste que debia hacerlo

Cita:
if (!empty($campos['campo1'])){
echo "Campo 1".$campos['campo1']."<br>";
}
ok eso me funciono bin para el demito que estaba haciendo ahora el problema es el siguiente como quiero que el usuario al momento de oprimir sobre <a href="procesar1.php">Guardar datos o procesarlos todos .. </a> me abra la otra pagina y me muestre el o los articulos que adiciono.. Esto me lo esta haciendo lo que ocurre es que todo eso lo tengo dentro de un table(html) y por cada campo me crea una tabla y no todosme los "agrupa" dentro de la misma.. hize un if anidado pensado que todos me quedarian sobre la misma tabla pero no funciono...

Asi
Código PHP:
session_start();
// recorrer el array..


foreach ($_SESSION['datos'] as $campos){

if ((!empty(
$campos['campo1']))|| (!empty($campos['seleccion']))){
print(
"
<tr>
<td><input name=\"cantidade0\" id=\"cantidade0\" type=\"text\" size=\"4\" maxlength=\"3\" value=\""
.$campos['campo1']."\" align=\"right\" onChange=\"mays(this)\" class=\"cajita1\"/></td>
</tr>
<tr>
<td><input name=\"cantidade0\" id=\"cantidade0\" type=\"text\" size=\"4\" maxlength=\"3\" value=\""
.$campos['seleccion']."\" align=\"right\" onChange=\"mays(this)\" class=\"cajita1\"/></td>
</tr>
"
);
}



espero que me puedas dar una ayuda o cualquier otra persona que sepa ya que esto es lo unico que me falta para acabar este proyecto y quiero que sea pronto jeje
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Última edición por Nano_; 30/08/2006 a las 16:13
  #23 (permalink)  
Antiguo 30/08/2006, 16:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Esto me lo esta haciendo lo que ocurre es que todo eso lo tengo dentro de un table(html) y por cada campo me crea una tabla y no todosme los "agrupa" dentro de la misma.. hize un if anidado pensado que todos me quedarian sobre la misma tabla pero no funciono...
No entendí nada .... como es eso de que un "campo" crea una "tabla" (no será una celda de una tabla? . .o generas una tabla por registro a presentar (en lugar de lo que debe ser: una fila de una tabla) .. Es importante que usemos los mismo "terminios" para entendernos, habla de "campos" y "registros" cuando te refieras a los datos de la BBDD .. habla de filas, columnas, celdas o tablas cuando te refieras a tablas "html" ...

Rrealmente funciono para entender cosas en modo "visual": dice el refran: "una imagen vale más que mil palabras" .. o código que pueda hacer una "idea" de lo que estás haciendo.

Cita:
espero que me puedas dar una ayuda ya que esto es lo unico que me falta para acabar este proyecto y quiero que sea pronto jeje
Veo que te lo estoy haciendo todo (bueno esto no es problema tuyo sino del que te responde: yo) .. que no "piensas" nada por tí mismo .. eso es "malo" .. el día que no tengas a mano alguien que te preste ayuda ya veremos que haces .. Piensatelo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #24 (permalink)  
Antiguo 30/08/2006, 16:55
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Hola cluster bueno.. bueno frente alo que dices de codigo ahi lo anexe

Código PHP:
session_start();
// recorrer el array..


foreach ($_SESSION['datos'] as $campos){

if ((!empty(
$campos['campo1']))|| (!empty($campos['seleccion']))){
print(
"
<tr>
<td><input name=\"cantidade0\" id=\"cantidade0\" type=\"text\" size=\"4\" maxlength=\"3\" value=\""
.$campos['campo1']."\" align=\"right\" onChange=\"mays(this)\" class=\"cajita1\"/></td>
</tr>
<tr>
<td><input name=\"cantidade0\" id=\"cantidade0\" type=\"text\" size=\"4\" maxlength=\"3\" value=\""
.$campos['seleccion']."\" align=\"right\" onChange=\"mays(this)\" class=\"cajita1\"/></td>
</tr>
"
);
}


Me esta mostrando una tabla por registro a presentar..
Por otro lado la verdad si entiendo que te e pedido mas ayuda de la necesaria pero es que no habia manejado algo asi y pues la verdad no suelo pedir ayudas ah no ser que este muy "colgado" de trabajo como en este caso.

TE agradezco por el tiempo que me has brindado..
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #25 (permalink)  
Antiguo 30/08/2006, 16:59
 
Fecha de Ingreso: noviembre-2003
Mensajes: 50
Antigüedad: 20 años, 5 meses
Puntos: 1
puedo darte un consejo? si tu mismo has echo el codigo javascript entonces es evidente que entiendes la metodologia de la programacion. Tan solo leete un manual entero i usa otro como referencia y programa tus paginas de 0...porke sino te va a pasar lo que dice cluster.. vas a estar aqui cada 2 x 3
  #26 (permalink)  
Antiguo 30/08/2006, 17:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Nano_ Ver Mensaje
Hola cluster bueno.. bueno frente alo que dices de codigo ahi lo anexe

Código PHP:
session_start();
// recorrer el array..


foreach ($_SESSION['datos'] as $campos){

if ((!empty(
$campos['campo1']))|| (!empty($campos['seleccion']))){
print(
"
<tr>
<td><input name=\"cantidade0\" id=\"cantidade0\" type=\"text\" size=\"4\" maxlength=\"3\" value=\""
.$campos['campo1']."\" align=\"right\" onChange=\"mays(this)\" class=\"cajita1\"/></td>
</tr>
<tr>
<td><input name=\"cantidade0\" id=\"cantidade0\" type=\"text\" size=\"4\" maxlength=\"3\" value=\""
.$campos['seleccion']."\" align=\"right\" onChange=\"mays(this)\" class=\"cajita1\"/></td>
</tr>
"
);
}


Me esta mostrando una tabla por registro a presentar..
Por otro lado la verdad si entiendo que te e pedido mas ayuda de la necesaria pero es que no habia manejado algo asi y pues la verdad no suelo pedir ayudas ah no ser que este muy "colgado" de trabajo como en este caso.

TE agradezco por el tiempo que me has brindado..
Lo siento mucho .. no es que no quiera ayudar .. el problema es que realmente no entiendo a donde quieres llegar.

Intenta exponer lo que tienes y lo que deberías obtener a ver si nos hacemos una idea .. por qué realmente si no logro entender que es lo que pasa y lo que quieres hacer es complicado ver la solución o por donde anda el problema.

Por mi parte sòlo espero que las cosas que te voy indicando las entiendas y no sòlo las apliques sin más (para que así puedas sacar tu mismo conclusiones)

Cita:
Por otro lado la verdad si entiendo que te e pedido mas ayuda de la necesaria pero es que no habia manejado algo asi
No te creas que yo he implementado sistemas tan o más complejos como el que estás trabajando o intentando hacer .. Sólo aplico la "base" (cosa que es normal que en algún momento por algùn médio la aprendas: un tutorial, alguien te lo menciona .. etc) pero el resto ya es cosa de ir "uniendo" conceptos simplemente .. creo que a todo esto le llaman "programar"? ...

Lo único que quiero que entiendas es que aquì andamos dando soluciones como es mi caso sin "probar" el código .. sin tener claro los objetivos .. sòlo resolviendo problemas muy puntuales y bien acotados (como los proporcionas). Se suelen dar mejores respuestas cuando uno sabe "a donde tiene que llegar" .. incluso "alternativas" mejores de las que tal vez tu propones. Esto es sòlo para que lo tengas presente y entiendas también al "otro lado" (nosotros .. los que pretendemos dar ayudas).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 19:25.