Jump to content

Recommended Posts

Posted

Boa tarde! Estou a fazer um site e estou a reutilizar código de outro site que já tinha feito. acontece que o ficheiro que tenho é

envio.js

function showAlert(type,message) {
 $('#alert').removeClass('alert-error').removeClass('alert-success').addClass('alert-' + type).html(message ).fadeIn();
 setTimeout("closeAlert()", 10000); // 6 segundos
}
$(function() {
 $('#alert').click(function() {
   closeAlert();
 });
});

function closeAlert() {
 $('#alert').fadeOut();
}
$('form.ajax').on( 'submit',function(){
 var activo = $('#check').is(':checked');
 var that = $(this),
 url= that.prop('action'),
 type= that.prop('method'),
 data = {};
 that.find('[name]').each(function(index,value) {
   var that=$(this),
 name=that.prop('name'),
 value=that.val(); 
   data[name]=value;
 });
  $.ajax({
  url: url,
  type: type,
  data: data,
  success:function(response) {
   if (activo==false){
  showAlert('error','<center><h1>Mensagem não enviada</h1>Por favor confirme que aceita as condições.</center>');
   }
   else if (response == "<center><h1>Reserva feita</h1> Agradecemos a sua reserva.</center>") {
 showAlert('success',response);
 }
   else {
 showAlert('error',response);

   }
  }
 });
 return false;
});

Acontece que ele funcionava bem e aparecia-me na alerta a informação se tinha ou não sido enviada. Agora quando estava a fazer testes no novo site ele deixou de aparecar direito e passou a carregar a o ficheiro em PHP coisa que eu não queria..... a unica coisa que eu penso que possa ser é terem feito alterações no ficheiro do jquery porque não o tenho alocado directamente e carrego-o através de:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

Será que ele sofreu alterações?

Posted

O que acontece é que antes eu tinha o formulário assim:

<form class="form-horizontal ajax" action="reserva.php" method="post" >
    <div class="form-group">
	 <label for="inputpercurso" class="col-sm-3 control-label">Percurso:</label>
	 <div class="col-sm-9">
	 <select class="form-control" id="inputpercurso" name="percurso">
	  <option value="Histórico Cultural" selected>Segway - Histórico Cultural</option>
	  <option value="Lazer">Segway - Lazer</option>
	  <option value="História e Lazer">Segway - História e Lazer</option>
	  <option value="Bom Jesus">Segway - Bom Jesus</option>
	  <option value="Voltinha">Segway - Voltinha</option>

	  <option value="" disabled></option>

	  <option value="Walking">Walking - Walking</option>
	  <option value="Gastronómico">Walking - Gastronómico</option>

	 </select>
    </div>
	 </div>
	 <div class="form-group">
    <label for="inputnome" class="col-sm-3 control-label">Nome:</label>
    <div class="col-sm-9">
	  <input type="text" class="form-control" id="inputnome" name="nome" placeholder="Nome" required>
    </div>
	 </div>
	 <div class="form-group">
    <label for="inputemail" class="col-sm-3 control-label">Email:</label>
    <div class="col-sm-9">
	  <input type="email" class="form-control" name="email" id="inputemail" placeholder="email" required>
    </div>
	 </div>
	 <div class="form-group">
	  <label for="inputtelefone" class="col-sm-3 control-label">Telefone:</label>
	 <div class="col-sm-9">
	   <input type="text" class="form-control" id="inputtelefone" name="telefone" placeholder="Telefone" required>
	 </div>
	 </div>
	 <div class="form-group">
    <label for="inputpessoas" class="col-sm-3 control-label">Numero de pessoas:</label>
    <div class="col-sm-9">
	  <input type="number" min="1" max="8" class="form-control" name="pessoa" id="inputpessoas" placeholder="Pessoas" required>
    </div>
	 </div>
	 <div class="form-group">
    <label for="datepicker" class="col-sm-3 control-label">Data:</label>
    <div class="col-sm-9">
	  <input type="text" class="span2 form-control date" name="dia" placeholder="dd/mm/aaaa" required readonly><span class="add-on"><i class="icon-th"></i></span>
    </div>
	 </div>
	 <div class="form-group">
    <label for="inputhora" class="col-sm-3 control-label">Hora:</label>
    <div class="col-sm-2">
	  <input type="number" min="1" max="24" class="form-control input-no-spinner" name="hora" id="inputhora" placeholder="HH" required>
    </div>
    <div class="col-sm-2">
	  <input type="number" min="0" max="59" class="form-control input-no-spinner" name="minuto" id="inputhora" placeholder="MM" required>
    </div>
	 </div>
	 <div class="form-group">
    <div class="col-sm-offset-3 col-sm-9">
	  <div class="checkbox">
	 <label>
	   <input type="checkbox" name="visto" id="check"> Declaro que li e aceito todas as condições que estão nas FAQs.
	 </label>
	  </div>
    </div>
	 </div>
	 <div class="form-group">
    <div class="col-sm-offset-3 col-sm-9">
	  <button type="submit" class="btn btn-default">Reservar</button>
	  <div id="alert"></div>
    </div>
	 </div>

   </form>

E no ficheiro envio.js estava:

$('form.ajax').on( 'submit',function(){
 var activo = $('#check').is(':checked');
 var that = $(this),
 url= that.prop('action'),
 type= that.prop('method'),
 data = {};
 that.find('[name]').each(function(index,value) {
   var that=$(this),
 name=that.prop('name'),
 value=that.val(); 
   data[name]=value;
 });
  $.ajax({
  url: url,
  type: type,
  data: data,
  success:function(response) {
   if (activo==false){
  showAlert('error','<center><h1>Mensagem não enviada</h1>Por favor confirme que aceita as condições.</center>');
   }
   else if (response == "<center><h1>Reserva feita</h1> Agradecemos a sua reserva.</center>") {
 showAlert('success',response);
 }
   else {
 showAlert('error',response);

   }
  }
 });
 return false;
});

Por aquilo que tinha visto o return false fazia com que o action="reserva.php, no formulário não fosse executado o que funcionava até ontem agora ficou a executar do nada eu posso alterar e retirar o action e assim já fica como eu preciso. Mas não haverá nenhuma forma de fazer com que o action não funcione. É que assim eu poderia fazer por exemplo um log in assim caso os dados estivessem correctos ia para uma determinada página caso contrário não sai de onde estava.

  • 2 weeks later...
Posted

Desculpa mas isso não corresponde à verdade, posso não o ter frisado mas foi após ver onde me foi aconselhado a dia 30 de Junho que fiquei com a quase certeza que ele estava a ignorar o return false e estava a executar o action na mesma..... e por esse motivo a dia 1 de Julho coloquei tanto o código como um link em que diz que o return false deveria fazer o que eu quero.

Posted

Não sei se existe forma de fazer o breakpoint de outra forma mas usei o alert para garantir que entrava entrava em alguns passos.

No site www.bragatours.com tem lá uns formulários e quando submetes deveria aparecer em baixo se foi enviado ou não, quando terminei o site ele estava a trabalhar direito e a fazer as coisas da forma esperada e o estúpido é sem alterar os ficheiros ele deixou de fazer..... achas que tem algum nexo deixar de fazer as coisas sem alterares os ficheiros?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.