Menú Principal

PHP ON CLICK

Iniciado por bgnumis, 13 Junio 2016, 08:20 AM

0 Miembros y 1 Visitante están viendo este tema.

bgnumis

Hola tengo un formulario, que me han ayudado en este foro, con js la cuestión es que el formulario me completa una serie de campos y me gustaría que al darle a un botón me guardara todos los campos en una tabla de mysql.

En algo similar leí que eso se haría con un "on click?" donde puedo leer sobre cómo funciona esa función. ¿Alguien podría ponerme un ejemplo chorra de como guardar datos dandole a un botón a una base de datos? Muchas Gracias.

engel lex

No tengo ni la menor idea que dices... en tal caso onclick no es una propiedad de PHP (PHP no tiene ninguna opción de interacción directa) es una propiedad de HTML y jscript, si usas jquery es simplemente .click() simplemente busca en Google "onclick HTML" (o js) y tendrás mucha info al respecto
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

gAb1

Ya te dije en tu otra pregunta que buscaras un poquito, no es necesario que habras otra. Ejemplos de como guardar datos en una base de datos los tienes por todas partes.

Si te hubieras molestado solo un poquito en buscar en este mismo subforo, te hubieras dado cuenta que en una de las preguntas pongo un ejemplo de como recibir datos por ajax y guardarlos: http://foro.elhacker.net/php/ajax_recibir_daros-t452816.0.html;msg2071906#msg2071906


bgnumis

Hola Gab1 disculpa porque te enfadaste y con motivo, aunque sí que lo miré, no me aclaro, voy muy lento, y aprendo demasiado tarde. Te pido disculpas, a ver si me podeis ayudar tengo es código:

Código (php) [Seleccionar]


<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">


<?php

 
//Inicializar una sesion de PHP
session_start();
 
//Validar que el usuario este logueado y exista un UID
if ( ! ($_SESSION['autenticado'] == 'SI' && isset($_SESSION['uid'])) )
{
    
//En caso de que el usuario no este autenticado, crear un formulario y redireccionar a la 
    //pantalla de login, enviando un codigo de error        <form name="formulario" method="post" action="index.php">
?>

       <form name="formulario" method="post" action="index.php">
           <input type="hidden" name="msg_error" value="2">
       </form>
       <script type="text/javascript">
           document.formulario.submit();
       </script>

<?php
}
 
    
//Conectar BD
    
include("conectar_bd.php");  
    
conectar_bd();
 
    
//Sacar datos del usuario que ha iniciado sesion"Propietario/a de ".$fila['Direccion']." ".$fila['PuertaLocalGaraje']
    
$sql "SELECT   tx_nombre,tx_apellidoPaterno,tx_TipoUsuario,id_usuario, tx_password
            FROM tbl_users
            LEFT JOIN ctg_tiposusuario
            ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
            WHERE id_usuario = '"
.$_SESSION['uid']."'";         
    
$result     =mysql_query($sql); 
 
    
$nombreUsuario "";

$cif "";

 
    
//Formar el nombre completo del usuario
    
if( $fila mysql_fetch_array($result) )
        
$nombreUsuario "".$fila['tx_nombre];

 
//Cerrrar conexion a la BD  <form action="insertarvisitas.php" method="POST" name="form">echo '
<td>'.'<a href="principal.php?id='.$muestra['ofi'].'">'.'<strong>Ir a Registrar</strong>'.'</a>'.'</td>';
mysql_close($conexio);

?>



<html lang="es">
<!doctype HTML>
<head>


<title>
</title>
<meta charset="utf-8"/>

<meta name="viewport" content="width=devide-width,initial-scale=1"/>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico"/>
<link rel="stylesheet"  href="css/estilos.css" />


<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]>-->

<link rel="stylesheet" href="flexslider.css"  media="screen" />
<script src="jquery.min.js"></script>
<script src="jquery.flexslider-min.js"></script>
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">

<!-- Includes for this demo -->
<link rel="stylesheet" href="css/flexslider.css" media="screen" />

<!-- Hook up the FlexSlider -->
<script>
$(window).load(function() {
$('.flexslider').flexslider();
});
</script>


   
   <script type="text/javascript">
   <!--
       $().ready(function() {
           $("#frmlogin").validate();
           $("#usuario").focus();
       });
   // -->
   </script>



</head>
<body>
<header>

<!<Cerrrar conexion a la BDlink rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<!<Cerrrar conexion a la BDlink rel="icon" href="/favicon.ico" type="image/x-icon">

<h1>
<a href="index.php" >
<img class="fade" alt="bla bla" src="img/bextlan-logo.jpg" />
</a>

</h1>




<nav>



<h2>  <td  width="15px" align="center">
       <!-- Proporcionar Link para cerrar sesion -->
       <a href="cerrarSesion.php">Cerrar Sesi&oacute;n &nbsp;</a>
   </td>

</h2>





</nav>





</header>



<section id="contenido2">
<br/>


<section id="Mercados2">


<article id="servicio12">

<br/>
<h3><tr>                                              <!-- Dar Bienvenida al usuario -->
   <td  width="100px" align="right">Bienvenid@ <b><?php echo $nombreUsuario ?>&nbsp;&nbsp;</b></td>
   
</tr></h3>
<p>
<br/>


Por favor, registra tu visita indicando todos los campos.

<br/>
<br/>

<?php 

;
 
?>




       <script type="text/javascript" src="//code.jquery.com/jquery-2.2.4.min.js"></script>
       <script type="text/javascript" src="js/scripts.js"></script>

       <script type="text/javascript">
           $(function () {

               function fnAlltotal() {
                       var alojamiento_total    = 0, dietas_total    = 0, otrosgastos_total    = 0,
                           desplazamiento_total = 0;

                   $('.amount-aloj').each(function () {
                       alojamiento_total += parseFloat($(this).val() || 0);
                   });
                   $('.amount-desp').each(function () {
                       desplazamiento_total += parseFloat($(this).val() || 0);
                   });
$('.amount-dietas').each(function () {
                       dietas_total += parseFloat($(this).val() || 0);
                   });
                   $('.alojamiento').val(alojamiento_total);
                   $('.desplazamiento').val(desplazamiento_total);
$('.dietas').val(dietas_total);
                   $('.total').val((alojamiento_total + desplazamiento_total+ dietas_total).toFixed(2));

               }

               $('.unit').on('keyup', function () {
                   var self = $(this),
                       qtyVal = self.prev().val();

                   self.next().val(qtyVal * self.val());
                   fnAlltotal();
               });

               $('.qty').on('keyup', function () {
                   var self = $(this),
                       unitVal = self.next().val();

                   self.next().next().val(unitVal * self.val());
                   fnAlltotal();
               });

           });
       </script>
<script language="javascript" type="text/javascript">
 function cambia(){
 document.forms[1].elements[0].value='?me vas a pinchar?'
}

function descambia(){
 document.forms[1].elements[0].value='pinchame'
}



function gracias(){
 alert('!Gracias por pincharme!')
 

}
 </script>





   </head>

   <body>

     
       <main>

           <div id="invoice">

                 <div class="alojamiento-box"> <form name="formulario" method="post" action="formulario1806.php">
               <h3>GASTOS REALIZADOS POR</h3>
               <p>&nbsp;</p>
 <h3>DESPLAZAMIENTO</h3>
               <div class="alojamiento-box">
                   <div>Km.:
                       <input type="text" class="qty" name="cantidadkm" />
                       Unit price:
                       <input type="text" class="unit" value="0.19"  readonly/>Cantidad:
                       <input type="text" class="amount-aloj" readonly />
                 </div>
                   <div>Km.:
                       <input type="text" class="qty"  />
                       Unit price:
                       <input type="text" class="unit" value="0.19" readonly/>Cantidad:
                       <input type="text" class="amount-aloj" readonly />
                 </div>
                 <div class="alojamiento-box">
                   <div>Km.:
                       <input type="text" class="qty"  />
                       Unit price:
                       <input type="text" class="unit" value="0.19" readonly/>Cantidad:
                       <input type="text" class="amount-aloj" readonly />
                 </div>
                   <div>Transporte p&uacute;blico:
                       <input type="text" class="qty" value="1" />Gasto realizado:
                       <input type="text" class="unit" />Cantidad:
                       <input type="text" class="amount-aloj" readonly />
                   </div>
                   <div>Transporte Metropolitano:
                       <input type="text" class="qty" />Gasto Realizado:
                       <input type="text" class="unit" />Cantidad:
                       <input type="text" class="amount-aloj" readonly />
                   </div>Subtotal:
                   <input type="text" class="alojamiento" readonly />
             </div>

  <h3>DIETAS</h3>
               <p>&nbsp;</p>

               <div class="alojamiento-box">
                   <div>Km.:
                       <input type="text" class="qty"  />
                       Unit price:
                       <input type="text" class="unit" value="0.19" readonly/>Cantidad:
                       <input type="text" class="amount-dietas" readonly />
                 </div>
                   <div>Transporte p&uacute;blico:
                       <input type="text" class="qty" value="1" />Gasto realizado:
                       <input type="text" class="unit" />Cantidad:
                       <input type="text" class="amount-dietas" readonly />
                   </div>
                   <div>Transporte Metropolitano:
                       <input type="text" class="qty" />Gasto Realizado:
                       <input type="text" class="unit" />Cantidad:
                       <input type="text" class="amount-dietas" readonly />
                   </div>Subtotal:
                   <input type="text" class="dietas" readonly />
             </div>
             
             <br>
             <br>

DIETAS

  <br>
  <br>

               <div class="desplazamiento-box">
                   <div>Quantity:
                       <input type="text" class="qty" />Desayunos:
                       <input type="text" class="unit /">Cantidad:
                       <input type="text" class="amount-desp" readonly />
                   </div>
                   <div>Quantity:
                       <input type="text" class="qty" />Gasto realizado:
                       <input type="text" class="unit" />Cantidad:
                       <input type="text" class="amount-desp" readonly />
                   </div>
                   <div>Cantidad:
                       <input type="text" class="qty" />Gasto en Desayunos:
                       <input type="text" class="unit /">Cantidad:
                       <input type="text" class="amount-desp" readonly />
                   </div>
                   <div>Quantity:
                       <input type="text" class="qty" />Gasto realizado:
                       <input type="text" class="unit" />Cantidad:
                       <input type="text" class="amount-desp" readonly />
                        <div>Quantity:
                       <input type="text" class="qty" />Gasto realizado:
                       <input type="text" class="unit" />Cantidad:
                       <input type="text" class="amount-desp" readonly />
                   </div>Subtotal:
                   <input type="text" class="desplazamiento" readonly />
               </div><br />
               
       

  <br>
  <br>

               
               
               
               
               Total: <input type="text" class="total" readonly />
               
               
               

             
               
         </div>
         </form>
         
         <center>
<form name="form1">
<input type="button" name="boton"  value="pinchame" onMouseOver="cambia();" onMouseOut="descambia();" onClick="gracias();"></center>
</form>

       </main>

       <footer>

       </footer>

   </body>

</html>




Este código no es para nada con ánimo de lucro, es para una asociación sin ánimo de lucro, intento aprender para ayudar a su vez. Por eso os pido ayuda.

La historia es que me gustaría enviar a una tabla "controlgastos" tres campos un id_registro con valor NULL, un usuario que sería $_SESSION['uid'] y name="cantidadkm" (luego ya añadiria otros campos con sus names)

En lo que leo de vuestros links la función gracias() del onclick debería "leer" cargar un archivo carga.php (que sería donde pondría el código mysqli)

Este paso cuando el usuario le da al botón es el que por mucho que leo, no veo como hacerlo.

Sé que me direis pobrecito, aun tiene animo, yo también me lo digo. Se que son preguntas chorras y las hago por desconocimiento. A ver si podéis ayudarme.

Muchas Gracias por adelantado.

bgnumis


Hola,

Dandole muchas vueltas he conseguido poniendo esto:
Código (php) [Seleccionar]


function gracias(){
  alert('!Gracias por pincharme!')
  $.ajax({

   type: "POST",
  url: "gastos.php",
 
});

}


Que se ejecute gasto.php que sólo me insera el campo id_control (porque es null) y lo autoincrmenta phpmyadmin. La historia es que desde el archivo donde está la función gracias() no sé como hacer que viajen por post para que los lea "gastos.php" las variables:

id_usuario que debiera ser $_SESSION['uid'] y "cantidadkm" que debiera ser el valor introducido en el primer ítem del formulario que se llama así con name.

A ver si me podéis ayudar porfa.


La función gastos.php es esta:


Código (php) [Seleccionar]


<?php

include("conexion.php");



if ( ! (
$_SESSION['autenticado'] == 'SI' && isset($_SESSION['uid'])) )
{
$cantidadkm=$_POST[cantidadkm];

$host="localhost";
$db="uytdeft";
$user="ouser";
$pw="@dudsdfsfeffs";

$con=mysql_connect($host,$user,$pw) or die ("problemas al conectar");
mysql_select_db($db,$con) or die ("problemas al conectar la bd");

mysql_query("INSERT INTO `ugtdef`.`controlgastos` (`id_control`, `id_usuario`, `cantidadkm`) VALUES (NULL, '$_POST[id_usuario]', `cantidadkm`='$cantidadkm')",$con);





}

 
?>





bgnumis

Porfa,

Una ayuda. Jjejej. Os mendigo ayuda. Que no lo consigo.

Muchas Gracias por adelantado. Es que no sé como hacer el post para que cuando le de al botón que ejecuta gracias() que ejecuta gasto.php sepa leer cantidadkm y id_usuario.

gAb1

Si es muy sencillo, no viste el ejemplo que puse?

La función post de jquery acepta las variables como parametros para enviarlas junto a la petición post:

Código (javascript) [Seleccionar]
$.post( "test.php", { name: "John", time: "2pm" } );

En este ejemplo (que lo puedes encontrar en la página de jQuery), name y time son los index con los que tendrás que cogerlos en php:

Código (php) [Seleccionar]
$name = $_POST['name']; // "John"
$time = $_POST['time']; // "2pm"

bgnumis

Mil gracias Gab, sí, eso lo veo, lo entiendo, pero ahora modificaciones no sé donde me equivoco a ver si puedes ver donde. Resulta que el archivo formulario1806.php ejecuta bien (veo que si en el formulario en el campo (el único que he definido) "cantidadkm" pongo 2 en el footer me muestra dos.

La cuestiójn es que ahora parece que la función onclick gracias() no está funcionando porque ya no me inserta nada en la base de datos ¿llamo mal las variables post para que me lean en gastos.php?

Estos son mis dos códigos:


formulario1806.php:


Código (php) [Seleccionar]



<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">


<?php

 
//Inicializar una sesion de PHP
session_start();
 
//Validar que el usuario este logueado y exista un UID
if ( ! ($_SESSION['autenticado'] == 'SI' && isset($_SESSION['uid'])) )
{
    
//En caso de que el usuario no este autenticado, crear un formulario y redireccionar a la 
    //pantalla de login, enviando un codigo de error        <form name="formulario" method="post" action="index.php">
?>

        <form name="formulario" method="post" action="index.php">
            <input type="hidden" name="msg_error" value="2">
        </form>
        <script type="text/javascript">
            document.formulario.submit();
        </script>

<?php
}
 
    
//Conectar BD
    
include("conectar_bd.php");  
    
conectar_bd();
 
    
//Sacar datos del usuario que ha iniciado sesion"Propietario/a de ".$fila['Direccion']." ".$fila['PuertaLocalGaraje']
    
$sql "SELECT   tx_nombre,tx_apellidoPaterno,tx_TipoUsuario,id_usuario, tx_password
            FROM tbl_users
            LEFT JOIN ctg_tiposusuario
            ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
            WHERE id_usuario = '"
.$_SESSION['uid']."'";         
    
$result     =mysql_query($sql); 
 
    
$nombreUsuario "";

$cif "";

 
    
//Formar el nombre completo del usuario
    
if( $fila mysql_fetch_array($result) )
        
$nombreUsuario "".$fila['tx_nombre'];
        
$cif "".$fila['CIF'];

 
//Cerrrar conexion a la BD  <form action="insertarvisitas.php" method="POST" name="form">echo '<td>'.'<a href="principal.php?id='.$muestra['ofi'].'">'.'<strong>Ir a Registrar</strong>'.'</a>'.'</td>';
mysql_close($conexio);

?>



<html lang="es">
<!doctype HTML>
<head>


<title> Prueba
</title>
<meta charset="utf-8"/>

<meta name="viewport" content="width=devide-width,initial-scale=1"/>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico"/>
<link rel="stylesheet"  href="css/estilos.css" />


<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]>-->

<link rel="stylesheet" href="flexslider.css"  media="screen" />
<script src="jquery.min.js"></script>
<script src="jquery.flexslider-min.js"></script>
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">

<!-- Includes for this demo -->
<link rel="stylesheet" href="css/flexslider.css" media="screen" />

<!-- Hook up the FlexSlider -->
<script>
$(window).load(function() {
$('.flexslider').flexslider();
});
</script>


     
    <script type="text/javascript">
    <!--
        $().ready(function() {
            $("#frmlogin").validate();
            $("#usuario").focus();
        });
    // -->
    </script>



</head>
<body>
<header>

<!<Cerrrar conexion a la BDlink rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<!<Cerrrar conexion a la BDlink rel="icon" href="/favicon.ico" type="image/x-icon">

<h1>
<a href="index.php" >
<img class="fade" alt="bla bla" src="img/bextlan-logo.jpg" />
</a>

</h1>




<nav>



<h2>  <td  width="15px" align="center">
        <!-- Proporcionar Link para cerrar sesion -->
        <a href="cerrarSesion.php">Cerrar Sesi&oacute;n &nbsp;</a>
    </td>

</h2>





</nav>





</header>



<section id="contenido2">
<br/>


<section id="Mercados2">


<article id="servicio12">

<br/>
<h3><tr>                                              <!-- Dar Bienvenida al usuario -->
    <td  width="100px" align="right">Bienvenid@ <b><?php echo $nombreUsuario ?>&nbsp;&nbsp;</b></td>
   
</tr></h3>
<p>
<br/>


Por favor, registra tu visita indicando todos los campos.

<br/>
<br/>

<?php 

;
 
?>




        <script type="text/javascript" src="//code.jquery.com/jquery-2.2.4.min.js"></script>
        <script type="text/javascript" src="js/scripts.js"></script>

        <script type="text/javascript">
            $(function () {

                function fnAlltotal() {
                        var alojamiento_total    = 0, dietas_total    = 0, otrosgastos_total    = 0,
                            desplazamiento_total = 0;

                    $('.amount-aloj').each(function () {
                        alojamiento_total += parseFloat($(this).val() || 0);
                    });
                    $('.amount-desp').each(function () {
                        desplazamiento_total += parseFloat($(this).val() || 0);
                    });
$('.amount-dietas').each(function () {
                        dietas_total += parseFloat($(this).val() || 0);
                    });
                    $('.alojamiento').val(alojamiento_total);
                    $('.desplazamiento').val(desplazamiento_total);
$('.dietas').val(dietas_total);
                    $('.total').val((alojamiento_total + desplazamiento_total+ dietas_total).toFixed(2));

                }

                $('.unit').on('keyup', function () {
                    var self = $(this),
                        qtyVal = self.prev().val();

                    self.next().val(qtyVal * self.val());
                    fnAlltotal();
                });

                $('.qty').on('keyup', function () {
                    var self = $(this),
                        unitVal = self.next().val();

                    self.next().next().val(unitVal * self.val());
                    fnAlltotal();
                });

            });


        </script>
<script language="javascript" type="text/javascript">
  function cambia(){
  document.forms[0].elements[43].value='?me vas a pinchar?'
}

function descambia(){
  document.forms[0].elements[43].value='pinchame'
}

function gracias(){
  alert('!Gracias por pincharme!')
   var parametros = { cantidadkm : "$_POST[cantidadkm]" };
   
$.post( "gastos.php", parametros  );
};
  </script>





    </head>

    <body>

       
        <main>

            <div id="invoice">

                  <div class="alojamiento-box">
                  <form name="formulario" method="post" action="formulario1806.php">
                <h3>GASTOS REALIZADOS POR</h3>
                <p>&nbsp;</p>
  <h3>DESPLAZAMIENTO</h3>
                <div class="alojamiento-box">
                    <div>Km.:
                        <input type="text" class="qty" name="cantidadkm" />
                        Unit price:
                        <input type="text" class="unit" value="0.19"  readonly/>Cantidad:
                        <input type="text" class="amount-aloj" readonly />
                  </div>
                    <div>Km.:
                        <input type="text" class="qty"  />
                        Unit price:
                        <input type="text" class="unit" value="0.19" readonly/>Cantidad:
                        <input type="text" class="amount-aloj" readonly />
                  </div>
                  <div class="alojamiento-box">
                    <div>Km.:
                        <input type="text" class="qty"  />
                        Unit price:
                        <input type="text" class="unit" value="0.19" readonly/>Cantidad:
                        <input type="text" class="amount-aloj" readonly />
                  </div>
                    <div>Transporte p&uacute;blico:
                        <input type="text" class="qty"  />Gasto realizado:
                        <input type="text" class="unit" />Cantidad:
                        <input type="text" class="amount-aloj" readonly />
                    </div>
                    <div>Transporte Metropolitano:
                        <input type="text" class="qty" />Gasto Realizado:
                        <input type="text" class="unit" />Cantidad:
                        <input type="text" class="amount-aloj" readonly />
                    </div>Subtotal:
                    <input type="text" class="alojamiento" readonly />
              </div>

   <h3>DIETAS</h3>
                <p>&nbsp;</p>

                <div class="alojamiento-box">
                    <div>Km.:
                        <input type="text" class="qty"  />
                        Unit price:
                        <input type="text" class="unit" value="0.19" readonly/>Cantidad:
                        <input type="text" class="amount-dietas" readonly />
                  </div>
                    <div>Transporte p&uacute;blico:
                        <input type="text" class="qty"  />Gasto realizado:
                        <input type="text" class="unit" />Cantidad:
                        <input type="text" class="amount-dietas" readonly />
                    </div>
                    <div>Transporte Metropolitano:
                        <input type="text" class="qty" />Gasto Realizado:
                        <input type="text" class="unit" />Cantidad:
                        <input type="text" class="amount-dietas" readonly />
                    </div>Subtotal:
                    <input type="text" class="dietas" readonly />
              </div>
             
              <br>
              <br>

DIETAS

   <br>
   <br>

                <div class="desplazamiento-box">
                    <div>Quantity:
                        <input type="text" class="qty" />Desayunos:
                        <input type="text" class="unit /">Cantidad:
                        <input type="text" class="amount-desp" readonly />
                    </div>
                    <div>Quantity:
                        <input type="text" class="qty" />Gasto realizado:
                        <input type="text" class="unit" />Cantidad:
                        <input type="text" class="amount-desp" readonly />
                    </div>
                    <div>Cantidad:
                        <input type="text" class="qty" />Gasto en Desayunos:
                        <input type="text" class="unit /">Cantidad:
                        <input type="text" class="amount-desp" readonly />
                    </div>
                    <div>Quantity:
                        <input type="text" class="qty" />Gasto realizado:
                        <input type="text" class="unit" />Cantidad:
                        <input type="text" class="amount-desp" readonly />
                         <div>Quantity:
                        <input type="text" class="qty" />Gasto realizado:
                        <input type="text" class="unit" />Cantidad:
                        <input type="text" class="amount-desp" readonly />
                    </div>Subtotal:
                    <input type="text" class="desplazamiento" readonly />
                </div><br />
                 
         

   <br>
   <br>

               
               
               
               
                Total: <input type="text" class="total" readonly />
               
               


             
               
   
         
         
         
           
         
         
     
         
          <center>

<input type="submit" name="boton"  value="pinchame" onMouseOver="cambia();" onMouseOut="descambia();" onClick="gracias();"></center>

       </div>
</form>

        </main>

        <footer>
      <?php echo $_POST[cantidadkm?>
        </footer>

    </body>

</html>





Y el de gastos.php


<?php

include("conexion.php");



if ( ! ( isset($_POST['cantidadkm'])) )
{


$host="localhost";
$db="ddddf";
$user="osftyh";
$pw="@dsdgg19d@";
$cantidadkm=$_POST['cantidadkm'];
$con=mysql_connect($host,$user,$pw) or die ("problemas al conectar");
mysql_select_db($db,$con) or die ("problemas al conectar la bd");

mysql_query("INSERT INTO `ugtdef`.`controlgastos` (`id_control`, `id_usuario`, `cantidadkm`) VALUES (NULL, '', `cantidadkm`='$cantidadkm')",$con);





}


?>


¿Por qué no me ejecuta gastos.php? ¿Y no me lee la variable cantidadkm?

Ay, gracias por adelantado.

gAb1

¿Tienes todo ese tochaco de código asi de mal ordenado en un solo archivo? Me duelen los ojos solo de mirarlo por encima. Ordenalo por partes en distintos archivos y dale un estilo adecuado para que sea más facil leerlo y encontrar fallos.

Así por encima veo unos cuantos:

Primero, el atributo language de la etiqueta <script> ya no se usa, quitalo para que no moleste y no de problemas. Tampoco es necesario especificar type="text/javascript" ya que es por defecto.

Segundo, no deberías mover el objeto del parametro de jquery post y la variable php no sé está imprimiendo correctamente (Aquí tienes el fallo):

Código (javascript) [Seleccionar]
$.post( "gastos.php", { cantidadkm : "<?= $_POST['cantidadkm'] ?>" } );

En todo caso podrias crear una variable con el valor que imprime php, pero el objeto es mejor dejarlo donde esta:

Código (javascript) [Seleccionar]
var cantidadkm = "<?= $_POST['cantidadkm'] ?>";

$.post( "gastos.php", { cantidadkm : cantidadkm } );


Si tu versión de PHP es menor a 5.4.0, tendrás que activar short_open_tag o usar los tags completos: <?php echo $variable; ?>

Mejor usa el evento click o on click de jquery (en lugar de una función):

Código (javascript) [Seleccionar]
$('.boton').click(function () {
    // código aquí
});


La siguiente manera no falla nunca:

Código (javascript) [Seleccionar]
$('.boton').on('click', function () {
    // código aquí
});


En serio, la estructura de tu archivo da pena, no solo que uses mil veces la misma etiqueta una detrás de otra, es que tienes repetidas etiquetas como head body, etc que són únicas. Y por cierto, <!DOCTYPE html> tiene que ir arriba de cualquier código html:

Código (html5) [Seleccionar]
<!DOCTYPE html>
<html>