Author Topic: Opciones en select  (Read 2976 times)

satjaen

  • Jr. Member
  • **
  • Posts: 99
  • Karma: 0
    • View Profile
Opciones en select
« on: Julio 24, 2013, 01:48:09 am »
Quiero hacer unos update con unos select pero no me sale. Por favor puedes ver lo que he hecho aunque este mal y decime como puedo hacerlo?

Quote
<script type="text/javascript">
function validar(val){
  switch (val){
   case "AUSENTE":
      if (confirm('¿Desea actualizar el estado del aviso?')) {
       
      
  $updateSQL = sprintf("UPDATE avisos SET hora_ausente=now(),facturacion=%s WHERE id_aviso=%s",
                     
                       GetSQLValueString($_POST['facturacion'], "text"),
                       GetSQLValueString($_POST['id_aviso'], "int"));

  mysql_select_db($database_conexion, $conexion);
  $Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error());
       
?>       
        } else{ return false};
   break;
 
   case "A EMITIR":
   <?
      if (confirm('¿Desea actualizar el estado del aviso?')) {
       
        $updateSQL = sprintf("UPDATE avisos SET facturacion=%s WHERE id_aviso=%s",
                     
                       GetSQLValueString($_POST['facturacion'], "text"),
                       GetSQLValueString($_POST['id_aviso'], "int"));

  mysql_select_db($database_conexion, $conexion);
  $Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error());
        } else{ return false};
   break;
  }
}

 
</script>
   

   <select id="facturacion"  name="facturacion" onchange="validar(this.value)" data-native-menu="true">

         <option value='<?php echo $row_Recordset1['facturacion']; ?>'><?php echo $row_Recordset1['facturacion']; ?></option>
         <option value='A EMITIR'>A EMITIR</option>
        <option value='GARANTIA TOTAL / REALIZADO'>GARANTIA TOTAL / REALIZADO</option>
        <option value='REALIZADO Y COBRADO'>REALIZADO Y COBRADO</option>
        <option value='1'>REALIZADO Y NO COBRADO</option>
        <option value='AUSENTE'>AUSENTE</option>
        <option value='NULO'>NULO</option>
        <option value='AVISO DUPLICADO'>AVISO DUPLICADO</option>
       <option value='EN ESPERA DE LLAMADA'>EN ESPERA DE LLAMADA</option>
       <option value='PENDIENTE DE MATERIAL'>PENDIENTE DE MATERIAL</option>                           

                                       

         </select>

Gracias

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5449
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Opciones en select
« Reply #1 on: Julio 24, 2013, 02:33:50 pm »
¿Qué quiere decir exactamente "no me sale"? ¿Da error? ¿Qué error? ¿Dónde?. Si pones un trozo de código relativamente largo y cuentas el problema en genérico ("no me sale"), es difícil ayudarte.

Se bueno.

satjaen

  • Jr. Member
  • **
  • Posts: 99
  • Karma: 0
    • View Profile
Re: Opciones en select
« Reply #2 on: Julio 24, 2013, 02:57:38 pm »
A ver si me explico:

Hacer un update dependiendo de la opcion seleccionada. Ahora mismo se hacerlo con uno solo pero como se haria con los demas?

Este es el 1º update con la opcion AUSENTE:

Quote
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  $updateSQL = sprintf("UPDATE avisos SET hora_ausente now(), facturacion=%s WHERE id_aviso=%s",
                     
                       GetSQLValueString($_POST['facturacion'], "text"),
                       GetSQLValueString($_POST['id_aviso'], "int"));
 
  mysql_select_db($database_conexion, $conexion);
  $Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error());
}

Este es el 2º update con la opcion A EMITIR:

Quote
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form2")) {
  $updateSQL = sprintf("UPDATE avisos SET facturacion=%s WHERE id_aviso=%s",
                     
                       GetSQLValueString($_POST['facturacion'], "text"),
                       GetSQLValueString($_POST['id_aviso'], "int"));
 
  mysql_select_db($database_conexion, $conexion);
  $Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error());
}

Quote
<script type="text/javascript">
function validar(val){
  switch (val){
   case "AUSENTE":
     if (confirm('¿Desea actualizar el estado del aviso?')) {form1.submit();} else{ return false}
     //// Aqui actualizo en el 1º update los campos hora_ausente y facturacion ////////
   break;
   case "A EMITIR":
     ////// Aqui solo necesito actualizar el campo facturacion y mandaria el 2º update  ////////
   break;
  }
}
</script>
   
<form method="post" name="form1" action="<?php echo $editFormAction; ?>">
 
   
 
                                <!-- En el evento onchange del select haremos el submit del form -->
 
   
 
    <select id="facturacion"  name="facturacion" onchange="validar(this.value)" data-native-menu="true">
 
     <option value='<?php echo $row_Recordset1['facturacion']; ?>'><?php echo $row_Recordset1['facturacion']; ?></option>
         <option value='A EMITIR'>A EMITIR</option>
        <option value='GARANTIA TOTAL / REALIZADO'>GARANTIA TOTAL / REALIZADO</option>
        <option value='REALIZADO Y COBRADO'>REALIZADO Y COBRADO</option>
        <option value='1'>REALIZADO Y NO COBRADO</option>
        <option value='AUSENTE'>AUSENTE</option>
        <option value='NULO'>NULO</option>
        <option value='AVISO DUPLICADO'>AVISO DUPLICADO</option>
       <option value='EN ESPERA DE LLAMADA'>EN ESPERA DE LLAMADA</option>
       <option value='PENDIENTE DE MATERIAL'>PENDIENTE DE MATERIAL</option>                                   
 
                                                   
 
            </select>
 
                                      <input type="hidden" name="MM_update" value="form1">
                    <input type="hidden" name="id_aviso" value="<?php echo $row_Recordset1['id_aviso']; ?>">
                  </form>

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5449
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Opciones en select
« Reply #3 on: Julio 24, 2013, 03:10:49 pm »
Pon form1 donde has puesto  form2.

Se bueno.

satjaen

  • Jr. Member
  • **
  • Posts: 99
  • Karma: 0
    • View Profile
Re: Opciones en select
« Reply #4 on: Julio 24, 2013, 03:41:00 pm »
Lo he hecho así pero solo me hace el 1º update de AUSENTE:

Quote
if(isset($_POST["facturacion"]))
{
 if($_POST["facturacion"] == "AUSENTE")
 
  if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  $updateSQL = sprintf("UPDATE avisos SET hora_ausente=now(),facturacion=%s WHERE id_aviso=%s",
                     
                       GetSQLValueString($_POST['facturacion'], "text"),
                       GetSQLValueString($_POST['id_aviso'], "int"));

  mysql_select_db($database_conexion, $conexion);
  $Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error());
}
 else if ($_POST["facturacion"] == "A EMITIR")
   if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  $updateSQL = sprintf("UPDATE avisos SET facturacion=%s WHERE id_aviso=%s",
                     
                       GetSQLValueString($_POST['facturacion'], "text"),
                       GetSQLValueString($_POST['id_aviso'], "int"));

  mysql_select_db($database_conexion, $conexion);
  $Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error());
}
}


Quote
<script language="javascript">
function Enviar()
{
    document.form1.submit();
}

</script>     

 <form method="post" name="form1" action="<?php echo $editFormAction; ?>">
 
   <select id="facturacion"  name="facturacion" onchange="Enviar()" data-native-menu="true">

         <option value='<?php echo $row_Recordset1['facturacion']; ?>'><?php echo $row_Recordset1['facturacion']; ?></option>
         <option value='A EMITIR'>A EMITIR</option>
        <option value='GARANTIA TOTAL / REALIZADO'>GARANTIA TOTAL / REALIZADO</option>
        <option value='REALIZADO Y COBRADO'>REALIZADO Y COBRADO</option>
        <option value='1'>REALIZADO Y NO COBRADO</option>
        <option value='AUSENTE'>AUSENTE</option>
        <option value='NULO'>NULO</option>
        <option value='AVISO DUPLICADO'>AVISO DUPLICADO</option>
       <option value='EN ESPERA DE LLAMADA'>EN ESPERA DE LLAMADA</option>
       <option value='PENDIENTE DE MATERIAL'>PENDIENTE DE MATERIAL</option>                           

                                       

         </select>
           
<input type="hidden" name="id_aviso" value="<?php echo $row_Recordset1['id_aviso']; ?>">
                             <input type="hidden" name="MM_update" value="form1">
                                     
                   
                  </form>

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5449
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Opciones en select
« Reply #5 on: Julio 24, 2013, 05:12:01 pm »
No veo nada raro, trata de poner algo de log para ver dónde está el problema. ¿Entra en el if? ¿Intenta ejecutar el update? ¿Da error?

Se bueno.

satjaen

  • Jr. Member
  • **
  • Posts: 99
  • Karma: 0
    • View Profile
Re: Opciones en select
« Reply #6 on: Julio 24, 2013, 09:31:21 pm »
No se como hacerlo.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5449
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Opciones en select
« Reply #7 on: Julio 24, 2013, 10:26:34 pm »
Imagino que tras pulsar el formulario te aparecera una página o algo.
En el código php con los if y el update, vete poniendo sentencias

echo 'entro en el if';
...
echo 'hago update';

etc.

Deberías ver eso en la página resultado de haber enviado el formulario.

Muevo esto a php, no tiene nada que ver con javascript.

Se bueno.

satjaen

  • Jr. Member
  • **
  • Posts: 99
  • Karma: 0
    • View Profile
Re: Opciones en select
« Reply #8 on: Julio 25, 2013, 04:17:44 am »
Lo he resuelto:

Quote
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  $updateSQL = sprintf("UPDATE avisos SET facturacion=%s WHERE id_aviso=%s",
                     
                       GetSQLValueString($_POST['facturacion'], "text"),
                       GetSQLValueString($_POST['id_aviso'], "int"));

  mysql_select_db($database_conexion, $conexion);
  $Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error());
 
 
}
if(isset($_POST["facturacion"]))
{
 if($_POST["facturacion"] == "AUSENTE") {
  $updateSQL = sprintf("UPDATE avisos SET hora_ausente=now() WHERE id_aviso=%s",
                     
                       GetSQLValueString($_POST['id_aviso'], "int"));

  mysql_select_db($database_conexion, $conexion);
  $Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error());
  }
}

Quote
<script type="text/javascript">
function validar(val){
  switch (val){
   case "AUSENTE":
     if (confirm('¿AUSENTE?')) {form1.submit();} else{ return false}
     //// Aqui actualizo en el 1º update los campos hora_ausente y facturacion ////////
   break;
   case "A EMITIR":
     if (confirm('¿A EMITIR?')) {form1.submit();} else{ return false}
   //// Aqui actualizo en el 2º update PERO SOLO EL CAMPO FACTURACION ////////
   break;
   case "NULO":
     if (confirm('¿NULO?')) {form1.submit();} else{ return false}
   //// Aqui actualizo en el 2º update PERO SOLO EL CAMPO FACTURACION ////////
   break;
  }
}
</script>
   
<form method="post" name="form1" action="<?php echo $editFormAction; ?>">
 
   
 
                                <!-- En el evento onchange del select haremos el submit del form -->
 
   
 
    <select id="facturacion"  name="facturacion" onchange="validar(this.value)" data-native-menu="true">
 
     <option value='<?php echo $row_Recordset1['facturacion']; ?>'><?php echo $row_Recordset1['facturacion']; ?></option>
         <option value='A EMITIR'>A EMITIR</option>
        <option value='GARANTIA TOTAL / REALIZADO'>GARANTIA TOTAL / REALIZADO</option>
        <option value='REALIZADO Y COBRADO'>REALIZADO Y COBRADO</option>
        <option value='1'>REALIZADO Y NO COBRADO</option>
        <option value='AUSENTE'>AUSENTE</option>
        <option value='NULO'>NULO</option>
        <option value='AVISO DUPLICADO'>AVISO DUPLICADO</option>
       <option value='EN ESPERA DE LLAMADA'>EN ESPERA DE LLAMADA</option>
       <option value='PENDIENTE DE MATERIAL'>PENDIENTE DE MATERIAL</option>                                   
 
                                                   
 
            </select>
 
                                      <input type="hidden" name="MM_update" value="form1">
                    <input type="hidden" name="id_aviso" value="<?php echo $row_Recordset1['id_aviso']; ?>">
                  </form>


Que te parece?
Quiero preguntarte que quiero que cuando elija la opcion NULO quiero que salga una ventana tipo popup para poder ingresar el motivo de ponerlo nulo.
Lo he visto en:
http://jquerymobile.com/demos/1.2.0/docs/pages/popup/index.html

http://babulina.go-nix.ca/nix/jquery-mobile-popup/docs/pages/popup/

Pero lo pongo y no se hace la ventana emergente.

Gracias
« Last Edit: Julio 25, 2013, 04:30:28 am by satjaen »

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5449
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Opciones en select
« Reply #9 on: Julio 25, 2013, 05:23:35 am »
Eso sí es javascript, abre un tema nuevo sólo con el código específico de ese problema. E insisto, lo de "no me sale" anima poco a ayudar. Indica siempre si da error, dónde lo da, etc, etc.

Se bueno.
« Last Edit: Julio 25, 2013, 05:25:33 am by chuidiang »

 

ey