Formulario php y ajax

Iniciado por datab, 17 Abril 2015, 08:22 AM

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

datab

Buenas tardes tengo un formulario en http://banquita.site40.net/venta.php, cuyo codigo es
Código (php) [Seleccionar]

<script src="funciones.js" language="javascript"></script>
   <script src="funciones2.js" language="javascript"></script>
   <script src="funciones.js" language="javascript"></script>
   <script src="jquery.min.js" language="javascript"></script>
    <script src="ajax.js" language="javascript"></script>
<script language="javascript" src="jquery-1.3.min.js"></script>
<script language="javascript">
$(document).ready(function() {
    $().ajaxStart(function() {
        $('#loading').show();
        $('#result').hide();
    }).ajaxStop(function() {
        $('#loading').hide();
        $('#result').fadeIn('slow');
    });
    $('#form, #fat, #detalleventas').submit(function() {
        $.ajax({
            type: 'POST',
            url: $(this).attr('action'),
            data: $(this).serialize(),
            success: function(data) {
                $('#result').html(data);

            }
        })
       
        return false;
    });
}) 
</script>


<form name="ventas" action="validaventa.php" method="post" autocomplete="off">

Sorteo:
  <select name="Sorteo" id="sorteo" type="text">
  <option value="<?php echo date("d/m/Y"); ?>" selected="selected"><?php echo date("d/m/Y"); ?></option>
  <option value="<?php echo date("d/m/Y",strtotime("+1 day")); ?>"><?php echo date("d/m/Y",strtotime("+1 day")); ?></option>
  <option value="<?php echo date("d/m/Y",strtotime("+2 day")); ?>"><?php echo date("d/m/Y",strtotime("+2 day")); ?></option>
  <option value="<?php echo date("d/m/Y",strtotime("+3 day")); ?>"><?php echo date("d/m/Y",strtotime("+3 day")); ?></option>
  <option value="<?php echo date("d/m/Y",strtotime("+4 day")); ?>"><?php echo date("d/m/Y",strtotime("+4 day")); ?></option>
  <option value="<?php echo date("d/m/Y",strtotime("+5 day")); ?>"><?php echo date("d/m/Y",strtotime("+5 day")); ?></option>
  <option value="<?php echo date("d/m/Y",strtotime("+6 day")); ?>"><?php echo date("d/m/Y",strtotime("+6 day")); ?></option>
  </select>

Tipo:
  <select name="Tipo" id="tipo">
  <option value="<?php $h=date("H");
if (
$h>12)
  echo 
"NOCHE"  ;
  else echo 
"MEDIODIA"
 
?>
" selected="selected" type="text">
<?php $h=date("H");
if (
$h>12)
  echo 
"NOCHE"  ;
  else echo 
"MEDIODIA"
 
?>
</option>
  <option value="<?php $h=date("H");
if (
$h>12)
  echo 
"MEDIODIA"  ;
  else echo 
"NOCHE"
 
?>
" type="text"><?php $h=date("H");
if (
$h>12)
  echo 
"MEDIODIA"  ;
  else echo 
"NOCHE"
 
?>
</option>

  </select>
 
Numero: <input autofocus maxlength="2" name="numero" id="numero" type="text" size="2" style="text-align:right" onKeyup="autotab(this, document.ventas.monto)" maxlength="2" align="right" autofocus>


Monto: <input maxlength="5" name="monto" id="monto" type="text" size="5" style="text-align:right" maxlength="5" align="right">

<input type="hidden" name="compra" id="compra" value="<?php echo date("d/m/Y"); ?>">
<input type="hidden" name="hora" id="hora" value="<?php echo date("H:i:s")?>">
<input type="hidden" name="tiquete" id="tiquete" value="<?php echo "nod" ?>">
<input type="hidden" name="estado" id="estado" value="SIN PREMIO/POR REVERSAR">
<input type="hidden" name="usuario" id="usuario" value="<?php echo strtoupper($_SESSION['usuario']); ?>">

<input type="submit" name="button" id="button" value="Incluir" />
</form>

<div id="detalleventas"></div>



quiero que al ingresar datos estos aparezcan abajo en el div ventaresultados, y el formulario no se recargue para ingresar mas datos, y que sigan apareciendo, sim embargo cuando se da enter aparecen se recarga toda la pagina y aparecen solo los dato ingresados.
que puedo hacer

Gracias

Usuario Invitado

#1
Hola,

Cuando se trabaja con AJAX generalmente no se pone el action="ruta/hacia/destino" y method="POST/GET", ya que ésto va mediante javascript. Si aun sabiendo ésto, quieres hacerlo de esa manera, solamente agrega como parámetro el evento y evita el flujo normal del evento, ésto siempre tiene que ser así, ya que de lo contrario hará un submit a la misma url. Debes hacerlo así:

Código (javascript) [Seleccionar]

$('#form, #fat, #detalleventas').submit(function(e) {
   e.preventDefault(); // evita el flujo normal del form
   $.ajax({
       type: 'POST',
       url: $(this).attr('action'),
       data: $(this).serialize(),
       success: function(data) {
           $('#result').html(data);
       }
   });
});



Saludos.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein