Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Javascript (http://www.forosdelweb.com/f13/)
-   -   ejemplo check_form de caricatos (http://www.forosdelweb.com/f13/ejemplo-check_form-caricatos-593063/)

sheilac 03/06/2008 16:40

ejemplo check_form de caricatos
 
hola
estoy usando el ejemplo de chek_form de caricatos
y funciona barbaro.
check_form.zip

es el ejemplo de poder subir una imagen a formulario con vista previa.
el problema que tengo es cuando hago el proceso del formulrio con mas datos cuando doy click en el boton enviar no me cierra el formulrio de envio de datos de ls secciones y me abre el nuevo con el listado de los datos de las secciones y la nueva seccion agregada.
como hago para cerrar el formulrio anterior y abrir el nuevo???
me deja el formulrio de envio como que no hubiera enviado nada abajo y si se hizo el envio y me abre chico el formulrio de listados.
desde ya muchas gracias

caricatos 03/06/2008 23:24

Respuesta: ejemplo check_form de caricatos
 
Hola:

Me agrada saber que te va bien el script (aunque solo sea una parte... :patada:)
Por si se me ha escapado algo, voy primero a recopilar...
Se trata de el artíaculo Revisar las imágenes antes de subirlas. Entre los comentarios pedían los ficheros y respondí con un enlace para bajar esos ficheros: check_form.zip; además en el propio artículo había un enlace a un formulario de ejemplo: Formulario (chequeo de imágenes).

Acabo de probar el formulario de ejemplo, y existe un campo de ejemplo y se envía sin problemas... Tal vez no estés haciendo bien la reasignación de algunos atributos (target o action).

Tal vez sea mejor que nos muestres tu formulario y scripts asociados (tal vez haya algún conflicto)

Saludos :arriba:

sheilac 04/06/2008 04:22

Respuesta: ejemplo check_form de caricatos
 
bien
muchas gracias por contestar
trate de adaptar este ejemplo a mi formulrio y anda barbaro solo que tengo ese problema
este es mi formulario principal donde hago la precarga de la imagen
PanelAgregarCont.php
el cual en elf ormulario llamo a mi funcion validar check form y comento la validar que tu utilizas ya que quiero validar todos los datos del formulrio y llamo a mi formulrio de listado , es la diferencia con tu codigo, de aqui voy a mi formulario listados,

Código PHP:

<? 
include_once('../includes/db.inc.php');
$bdsec = new db($host,$user,$pass);
$bdsec->db_connect();
$bdsec->db_select_db($db);

$bdsec->db_sql_select('*','secciones','1=1 and version ="espanol"',array('IdSeccion'=>'asc'),'');
 
$bdsec->db_execute_query();

?>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta NAME="description" content="">
<meta NAME="keywords" content="">

<script src="../js/swfobject.js" type="text/javascript"></script>

<script src="../js/funciones.js" type="text/javascript"></script>
<script type="text/javascript">
            function actuar(peso, anchura, altura)    {
                this.peso.value = peso;
                this.ancho.value = anchura;
                this.alto.value = altura;
            }

            function ini()    {
                document.forms.formu.actualizar = actuar;
                window.frames.ver.location.href = "previsor.php";
                   //document.img.ver.location.href="previsor.php";
                document.forms.formu.actualizar(0, 0, 0);

            }

            
            function limpiar()    {
                document.forms.formu.actualizar(0, 0, 0);
                f = document.getElementById("archivo");
                nuevoFile = document.createElement("input");
                nuevoFile.id = f.id;
                nuevoFile.type = "file";
                nuevoFile.name = "archivo";
                nuevoFile.value = "";
                nuevoFile.onchange = f.onchange;
                nodoPadre = f.parentNode;
                nodoSiguiente = f.nextSibling;
                nodoPadre.removeChild(f);
                (nodoSiguiente == null) ? nodoPadre.appendChild(nuevoFile):
                    nodoPadre.insertBefore(nuevoFile, nodoSiguiente);
            }

            function checkear(f)    {
                function no_prever() {
                    alert("El fichero seleccionado no es válido...");
                    limpiar();
                }
                function prever() {
                    var campos = new Array("peso", "alto", "ancho");
                    for (i = 0, total = campos.length; i < total; i ++)
                        f.form[campos[i]].disabled = false;
                    actionActual = f.form.action;
                    targetActual = f.form.target;
                    f.form.action = "previsor.php";
                    f.form.target = "ver";
                    f.form.submit();
                    for (i = 0, total = campos.length; i < total; i ++)
                        f.form[campos[i]].disabled = true;
                    f.form.action = actionActual;
                    f.form.target = targetActual;
                }

                (/\.(gif|jpg|png|ico|bmp)$/i.test(f.value)) ? prever() : no_prever();
            }

            function datosImagen(peso, ancho, alto, error)    {
                function mostrar_error()    {
                    enviar = false;                    
                    mensaje = "Ha habido un error (error nº " + error + "):";
                    if (error % 2 == 1) // tipo incorrecto
                        mensaje += "\nel fichero no es válido";
                    error = parseInt(error / 2);                    
                    limpiar();
                }
                if (error == 0)
                    document.forms.formu.actualizar(peso, ancho, alto);
                else
                    mostrar_error();
            }
            
            
function checkForm()
            {
              var exp = /^[\+\-]{0,1}[0-9]+[\.]{0,1}[0-9]*$/;
              var re_int = /^(?:\+|-)?\d+$/;
                
              fotoprincipal=document.getElementById('fotoprincipal').value;
              descripcion=document.getElementById('descripcion').value; 
            
              titulo=document.getElementById('titulo').value;
            
              if (fotoprincipal==''){
                alert('Debe ingresar la foto !');
                document.getElementById('fotoprincipal').focus();
                return false;
              }
            
              if(descripcion==''){    
                  alert('Debe ingresar la descripicion !');
                  document.getElementById('descripcion').focus();
                  return false;
                }
            
              if(titulo==''){    
                  alert('Debe ingresar el titulo!');
                  document.getElementById('titulo').focus();
                  return false;
              } 
              return true;
}
</SCRIPT>

<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body onLoad="MM_preloadImages('images/3kzOn.gif'),ini()">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" class="BackFoot">
  <tr>
    <td height="170" align="center" valign="top" class="BackPanel"><table width="780" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td align="left"><img src="../images/HeadPanel.jpg" width="643" height="116"></td>
        <td width="51" valign="top"><a href="PanelControl.html"><img src="../images/BtnCas.gif" width="51" height="34" border="0"></a><br>
          <a href="ingles/PanelControl.html"><img src="../images/BtnEng.gif" width="51" height="34" border="0"></a></td>
      </tr>
    </table>
    </td>
  </tr>
  
  <tr>
    <td height="77" valign="top"><table width="780" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="200" height="10" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="TxtMenu">
          <tr>
            <td height="36" align="left" valign="middle">&nbsp;</td>
          </tr>        
          <tr>
            <td height="22" align="left" valign="middle" class="MenuTd"><img src="../images/BullOn.gif" width="7" height="7" />Agregar Contenido</td>
          </tr>
         
         
        </table></td>
        <td width="30">&nbsp;</td>
        <td valign="top">
          <form name="formu" id="formu" method="post" action="PanelAdmCont.php"  onSubmit="return checkForm();"   enctype='multipart/form-data'>
     <? if($rowsec $bdsec->get_next_row()){?>
    
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td height="36" class="TxtTitulo">Panel de Control </td>
          </tr>
          <tr></tr>
          <tr>
            <td height="15" class="TxtHome">&nbsp;</td>
          </tr>
          <tr>
            <td height="15" class="TxtHome"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="TxtHome">
              <tr>
                <td width="150" height="20" valign="middle">Selecciones una Secci&oacute;n</td>
                <td valign="middle"> <select name="id_seccion" id="id_seccion"  class="select-panel">
            <? 
                                $cont
=0;
                                while(
$rowsec){
                                
?>
                        <option value="<? echo $rowsec['IdSeccion'];?><? if($cont==0) echo "selected";?>><? echo $rowsec['Name'];?></option>
                        <? 
                                $rowsec 
$bdsec->get_next_row();
                                
$cont++;
                                }
                                
?>
                      </select>
                      </td>
              </tr>

            </table></td>
          </tr>
          <tr>
            <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="TxtHome">
              <tr class="BordePanel">
                <td width="150" height="27" valign="middle" class="BordePanel">&nbsp;</td>
                <td valign="middle">&nbsp;</td>
                </tr>
              <tr class="BordePanel">
                <td height="60" valign="middle" >Cargar  im&aacute;gen <br>
                  270 x 204 px.</td>
                <td valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                  <tr class="BordePanelZero">
                  <!--aqui utilizo el frame de la imagen-->
                    <td width="270"  align="left" valign="bottom"><iframe   id="ver" frameborder="0"   name="ver" align="bottom" style=" width: 270px; height: 204px;"></iframe></td>
                    <td align="left" valign="bottom"><input type="file" name="fotoprincipal" id="fotoprincipal" src="previsor.php"  onchange="this.form.target = checkear(this)"  ></input> 
                            <input type="hidden" readonly name="peso" value="0" />
                            <input type="hidden" readonly name="ancho" value="0" />                            
                            <input type="hidden" readonly name="alto" value="0" /></td>
                  </tr>
                </table></td>
                </tr>
              <tr class="BordePanel">
                <td height="20" valign="middle">Descripci&oacute;n</td>
                <td valign="middle"><input name="descripcion" type="text" class="input Panel" id="descripcion"/></td>
                </tr>
              <tr class="BordePanel">
                <td height="20" valign="middle">T&iacute;tulo</td>
                <td valign="middle"><input name="titulo" type="text" class="input Panel" id="titulo"/></td>
                </tr>
              <tr class="BordePanel">
                <td height="20" valign="top">Texto  Principal</td>
                <td valign="middle">    <textarea name="cuerpo" rows="30" cols="44" id="cuerpo" class="input-txt"></textarea>          
       </td>
                </tr>
              
              <tr>
                <td height="40" valign="middle">&nbsp;</td>
                <td valign="middle"><input type="hidden" value="1" name="add"><a href="javascript:if(checkForm()){formu.submit();}"><img src="../images/BtnAceptar.gif" width="33" height="20" border="0"></a></td>
                </tr>
                
            </table>
            
            </td>
          </tr>
          <tr></tr>     
        </table>
        
        <? }?>
    </form>
        </td>
        </tr>
    </table></td>
  </tr>
  
  <tr>
    <td height="100" valign="bottom"><table width="780" height="50" border="0" align="center" cellpadding="0" cellspacing="0" class="TxtFoot">
     

    </table></td>
  </tr>
</table>
</body>
</html>


sheilac 04/06/2008 04:25

Respuesta: ejemplo check_form de caricatos
 
tengo que mandar en dos mensajes por la cantidad de datos incuso saque cosas del formulario anterior lo deje mas sencillo

este es el formulario
previendo.php

Código PHP:

<?php
session_start
();
$url = ($_SESSION["cont"] == "")
    ? 
fread(fopen("../images/big01.JPG""rb"), filesize("../images/big01.JPG"))
    : 
$_SESSION["cont"];
$tip = ($_SESSION["tipo"] == "")
    ? 
"image/gif"
    
$_SESSION["tipo"];
header("Content-type: $tip");
echo 
$url;
session_destroy();
?>


previsor.php

Código PHP:

<?php
    session_start
();
    
$defecto "../images/big01.JPG";
    
$Ok = isset($_FILES["fotoprincipal"]);
    
$url = ($Ok) ? $_FILES["fotoprincipal"]["tmp_name"] : $defecto;
    list(
$anchura$altura$tipoImagen$atributos) = getimagesize($url);
    
$error = (isset($atributos)) ? 1;
    
$los_tipos = array("gif""jpg""png","JPG");
    
$tipo = ($Ok) ? "image/".$los_tipos[$tipoImagen 1] : "image/gif";
    
$fichero = ($Ok && ($error == 0)) ? $_FILES["fotoprincipal"]["name"] : $defecto;
    
$tam filesize($url);    
    
$datomuestro = ($ancho=46 $alto=35);    
    
$datos =  $url ;
    
$onload = ($Ok) ? "onload='parent.datosImagen($tam, $ancho, $alto, $error)'"'';
    
//$datos_imagen = fread(fopen($datos, "rb"), filesize($datomuestro)); 
$datos_imagen fread(fopen($datos"rb"), filesize($datos)); 
    
$_SESSION["cont"] = $datos_imagen;
    
$_SESSION["tipo"] = ($error == 0) ? $tipo "image/gif";
?>
<html >
<head>
<style type="text/css" >
html    {
    height: 100%;
}
body    {
    height: 100%;
    overflow: hidden;    
    background-image: url(previendo.php?dato=<?=$fichero;?>);    
    background-position:top;
    background-repeat: no-repeat;
}
</style>
</head>
<body <?=$onload;?>>

</body>
</html>

receptor.php

Código PHP:

<html>
<body>
<?
function listado($descriptor$objeto$nivel) {
    echo 
"<u>$descriptor</u>:<br/>\n";
    echo 
"<div style='border: 1px solid gray; margin-left: 1cm'>Datos $descriptor: (nivel: $nivel)<br />\n";
    foreach (
$objeto as $item => $dato)    {
        echo 
"$item = $dato <br />";
        if (
is_Array($dato) && ($nivel 5) && ($item != $descriptor))
            
listado($descriptor."[ ".$item." ]"$dato$nivel 1);
    }
    echo 
"</div>";
}

listado ("GET"$_GET0);
echo 
"<hr />";
listado ("POST"$_POST0);
echo 
"<hr />";
listado ("FILES"$_FILES0);
?>
</body>
</htnl>

lo que le he sacado a todo de tu ejemplo son las cajas de peso, anchura de la imagen que no me interesaban
estos son todos los formularios que utilizo
desde ya muchas gracias


La zona horaria es GMT -6. Ahora son las 06:25.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.