Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/07/2006, 11:37
andersfriden
 
Fecha de Ingreso: julio-2006
Mensajes: 70
Antigüedad: 17 años, 9 meses
Puntos: 0
guardar cambios de posicion de unos textos

holas tengo el siguiente codigo y cuando presione enviar quiero q me guarde los cambios q realize a las posiciones de los textos .

Código PHP:
<?php
include ("../../permiso.php");

function 
listarcampo($dbi,$base,$codigo,$campo,$tabla,$atributo)
//Lista la descripción de la institución.
{
    
$consulta="select ".$campo." from ".$tabla." where ".$atributo."='$codigo'";
    
$result=mysql_db_query($base,$consulta,$dbi);
    
$row=mysql_fetch_array($result);
    
$resultado=$row[$campo];
    return(
$resultado);
}

function 
seleccionar_lugar($dbi,$base,$codigo_prueba,$cod_texto)
//Selecciona las posiciones de los textos de la Forma A
{
    
$consulta "select prueba_texto.cod_texto,num_texto from texto,prueba_texto where cod_prueba='$codigo_prueba' and prueba_texto.cod_texto=texto.cod_texto order by num_texto";
    
$result=mysql_db_query($base,$consulta,$dbi);
    return(
$result);
}
function 
listar_textos($dbi,$base,$codigo_prueba,$creara,$codigo_formaA)
//lista los títulos de los textos y pone el combo 
{
    
$consulta "select prueba_texto.cod_texto,num_texto,titulo from texto,prueba_texto where cod_prueba='$codigo_prueba' and prueba_texto.cod_texto=texto.cod_texto order by num_texto";
    
$result=mysql_db_query($base,$consulta,$dbi);
    
$valor=cantidad_textos($dbi,$base,$codigo_prueba);
    
$tituloA=listarcampo($dbi,$base,$codigo_prueba,"nombre_prueba","prueba","cod_prueba");
    
$nivelA=listarcampo($dbi,$base,$codigo_prueba,"cod_nivel","prueba","cod_prueba");
    
$creacionA=listarcampo($dbi,$base,$codigo_prueba,"fecha_creacion","prueba","cod_prueba");
    
$consulta2='select cod_prueba from prueba where nombre_prueba="'.$tituloA.'" and cod_nivel="'.$nivelA.'" and fecha_creacion="'.$creacionA.'" and forma="B"';
    
$result2=mysql_db_query($base,$consulta2,$dbi);
    
$row2=mysql_fetch_array($result2);
    if (
mysql_num_rows($result2)!=0)
        
$cod_formab=$row2["cod_prueba"];
    else
        
$cod_formab='';

    while (
$row=mysql_fetch_array($result))
        {
            
$num=0;
            
$cont++;
            print 
"<tr valign='baseline'><td width='90%'><ul>
                <li>"
.$row["titulo"]."</li>
              </ul></td><td width='15%' align='center'><select name='lugar[]' id='lugar' style='width:40px'>"
;
            
llenar_combo($dbi,$base,$valor,$row["cod_texto"],$cont);
            print 
"</select><td width=\"5%\">&nbsp;</td></td>";
            if (
$creara==2)                //Si presionó el botón Modificar coloca una nueva columna con la posición
                
{                        //de los textos en la Forma A.
                    //$formaB=seleccionar_lugar($dbi,$base,$codigo_formaA,$row["cod_texto"]);  //pasar codigo forma b
                    
$formaB=seleccionar_lugar($dbi,$base,$cod_formab,$row["cod_texto"]);  //pasar codigo forma b
                    
while ($row2=mysql_fetch_array($formaB))
                        {
                            
$num++;
                            if(
$row2["cod_texto"]==$row["cod_texto"])
                                break;
                        }        
                    print 
"<td width='15%' align='center'><input name=\"posicion[]\" id=\"posicion\" type=\"text\" size=\"2\" value=\"".$num."\" maxlength=\"2\" disabled>";
                    print 
"</td>";
                }
            print 
"</tr>";
        }
    return(
$valor);    
}
function 
llenar_combo($dbi,$base,$valor,$cod_texto,$pos)
//lLena los combos de acuerdo a la cantidad de textos
{
    for (
$ind=1;$ind<=$valor;$ind++)
            {
                if (
$pos==$ind)
                    print 
"<option value=\"".$ind."\" selected>".$ind."</option>";    
                else    
                    print 
"<option value=\"".$ind."\">".$ind."</option>";    
            }    
}
function 
cantidad_textos($l,$base,$cod_prueba)
//Determina la cantidad de textos de una prueba
{
    
$consulta="select count(*) as num from texto,prueba_texto where cod_prueba='$cod_prueba' and prueba_texto.cod_texto=texto.cod_texto order by num_texto";
    
$resp=mysql_db_query($base,$consulta,$l);
    
$row=mysql_fetch_array($resp);
    
$valor=$row["num"];
    return(
$valor);
}

?>
<html>
<head>
<style>  

//P { font: bold 11pt arial }
table{
font-family:arial;
font-size:12;

}
Li { font: 10pt arial }

</style>
<script>
function validar($valor,$mod) 
//Valida que todos los valores de los combos sean distintos y que no sean iguales a la Forma A.
{
    var $i;
    var $j;
    var $sw;
    for ($j=0;$j<$valor;$j++)
    for ($i=$j+1;$i<$valor;$i++)
    {
        if (document.form1.lugar[$j].value==document.form1.lugar[$i].value)
            {                
                
                alert("Existe un valor repetido, debe cambiarlo");
                return(false);
            }
        }
    for ($i=0;$i<$valor;$i++)
    {
        if ((document.form1.lugar[$i].value-1)==$i)
            $sw=1;
        else
            {
                $sw=0;    
                break;            
            }    
    }
    if ($sw==1)
        {
            alert("Debe alterar el orden de los textos");
            return(false);
        }
    if ($mod==2)        //Verifica que el orden de los textos no sea igual a la forma A
    {    
        
        for ($i=0;$i<$valor;$i++)
        {
            if (document.form1.lugar[$i].value==document.form1.posicion[$i].value)
                $sw=1;
            else
                {
                    $sw=0;
                    break;            
                }    
        }
        if ($sw==1)
            {
                alert("El orden de los textos de la Forma A no puede ser igual a la Forma B");
                return(false);
            }
    }    
    return(true);        
            
}
</script>
<title>Forma A</title></head>



<BODY>
<form name='form1' action="guardar_formaA.php" onsubmit="return validar(valor,mod)">
  <table width="71%" border="0" align="center" height="247">
    <tr> 
      <td height="267"> <font face="Arial, Helvetica, sans-serif" size="2">&nbsp; 
        </font> 
        <?    
    
print $tipart1azul;  
    print 
"Listado de Textos Forma A";
    print 
$tipart2azul;
    print 
$contpart1azul;
?>
        <table width="85%" border="0" align="center">
          <tr> 
            <td colspan="2"><?if ($creara==1){
                print 
"Establezca el orden de los textos en que aparecerán en la Forma A:";
                
$titulo="Posición";
                
$titulo2="";
                }
            else
                {
                    print 
"Modifique el orden de los textos en que aparecerán en la Forma A:";
                    
$titulo="Posición Forma A";
                    
$titulo2="Posición Forma B";
                }
                
?>
            </td>
          <tr> 
            <td colspan="2">&nbsp;</td>
          <tr> 
            <td width="65%"><div align="center"><b><strong><font size="2" face="Arial, Helvetica, sans-serif">T&iacute;tulo</font></strong></b></div></td>
            <td width="15%"><div align="center"><strong><font size="2" face="Arial, Helvetica, sans-serif"><? print $titulo?></font></strong></div></td>
            <td width="5%">&nbsp;</td>
            <td width="15%"><div align="center"><strong><font size="2" face="Arial, Helvetica, sans-serif"><? print $titulo2?></font></strong></div></td>
                
          <tr > 
            <td width="65%"><b><strong>
              </strong></b></td>
            <td width="15%"><strong> </strong></td>
            <td width="5%">&nbsp;&nbsp;&nbsp;</td>
            <td width="15%"><strong> </strong></td>
          <tr> 
            <td> 
              <?
                    $dbi
=mysql_connect('localhost',$cuenta,$pass);
                    if (
$creara==2)
                        {
                            
$valor=listar_textos($dbi,$base,$codigo_formaA,$creara,$codigo_prueba);
                            print
"<tr><td colspan='4'><b>Observación:</b> El orden de los textos de la Forma A no puede ser igual a la Forma B</td></tr>";
                        }    
                    else    
                        
$valor=listar_textos($dbi,$base,$codigo_prueba,$creara,$codigo_formaA);
                    
mysql_close($dbi);
            
?>
            </td>
          </tr>
        </table>
        <p> 
          <?  print $contpart2azul;?>
        </p>
      </td>
    </tr>
  </table>

 <script>var valor=<? print $valor;?>;
         var mod=<? print $creara;?>;
</script> <div align="center">
     <input type="hidden" name=prueba0 value='<? print $prueba0 ?>'>
    <input type="hidden" name=prueba1 value='<? print $prueba1 ?>'>
    <input type="hidden" name=prueba2 value='<? print $prueba2 ?>'>
    <input type="hidden" name=nombre value='<? print $nombre ?>'>
    <input type="hidden" name=nivel value='<? print $nivel?>'>
    <input type="hidden" name=tiporev value='<? print $tiporev?>'>
    <input type="hidden" name=creara value='<? print $creara?>'>
    <input type="hidden" name=codigo_formaA value='<? print $codigo_formaA?>'>
    <input type="hidden" name=cod_prueba value='<? print $codigo_prueba?>'>
    <input type="hidden" name=checkbox1 value='<? print $checkbox1?>'>
    <input type="hidden" name=listar value='<? print $listar?>'>
    <input type="hidden" name=checkbox3 value='<? print $checkbox3?>'>
    <input type="submit" name="Submit"  value="Guardar">
  </div>
</form>
</BODY>
</HTML>