Devolver valor AJAX

  • Autor Autor Papacho
  • Fecha de inicio Fecha de inicio
P

Papacho

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola tengo este codigo y no domino JS, yo ya cree el php pero este JS necesita que el php devuelva algo, y no se que devolver o como devolverlo. Alguien me ayuda?

Se que es tipo true o false

PHP:
  var ContactAjax = function($full_name, $email, $phone, $message){
    $.ajax({
      type: "POST",
      url: yourdomain + "contact_send.php",	//@TODO CHange to Live
      //dataType: "json" ,
      data: { full_name : $full_name, email : $email, phone: $phone, message : $message},
      success: function(data) {
        //console.log(data);
        var response = jQuery.parseJSON(data);			
        $(".contact_form form .result .alert").slideUp().remove();
        var contact_form = $('.contact_form form');
        if(response.success)
        {   contact_form.slideUp().height('0');
         contact_form.parent().append(mail_success);
        }else{
          var i;
          for(i=0; i<response.errors.length; i++){
            if(response.errors[i].error == 'empty_name')  {
              contact_form.find('[name="full_name"]').parent().append(full_name_error);
            }
            if(response.errors[i].error == 'empty_email')  {
              contact_form.find('[name="email"]').parent().append(email_error);
            }
            if(response.errors[i].error == 'empty_message')  {            
              contact_form.find('[name="message"]').parent().append(message_error);
            }
			if(response.errors[i].error == 'empty_phone')  {            
              contact_form.find('[name="phone"]').parent().append(phone_error);
            }
            if(response.errors[i].error == 'invalid'){
              contact_form.find('[name="email"]').parent().append(invalid_email_error);  
            }
            if(response.errors[i].error == 'mail_error'){
              contact_form.append(mail_error);  
            }
          }
        }
        jQuery('button.close').click(function(){
          if(jQuery(this).data('dismiss')==='alert'){
            jQuery(this).parent().remove();
          }
        });
        
      }	
    });
  };
  
});
 
Última edición:
1- desde PHP tendrias que usar un echo o die para mostrar un resultado
2- var response = jQuery.parseJSON(data); ... response es la variable que contiene lo que PHP le dio
 
1- desde PHP tendrias que usar un echo o die para mostrar un resultado
2- var response = jQuery.parseJSON(data); ... response es la variable que contiene lo que PHP le dio

Gracias por responder, probe con echo y varias cosas mas como json decode que vi en google pero parece nada funcionar. Como hago para darle un valor a response? Que valor debo darle? Saludos
 
Gracias por responder, probe con echo y varias cosas mas como json decode que vi en google pero parece nada funcionar. Como hago para darle un valor a response? Que valor debo darle? Saludos

si el script regresa un json, tienes que usar json_encode... ejemplo
PHP:
echo json_encode(array("variable"=>"hola"));

despues seria: response.variable en JS... pero ten en cuenta que de seguro el script esta regresando otro valor... tendrias que colocar el php aca tmb...
 
Es un formulario de contacto un sujeto me pidio que lo ayudara tiene la plantilla pero no el contact_send.php, yo cree el contact_send.php y envie los datos del formulario con la funcion mail de php en el formulario tendria que aparecer un mensaje de enviado correctamente o similar, solo tengo html que no tiene sentido pasarlo y este javascript que te paso completo, el php solo la funcion mail que envia las vas variables del tipo post a un email. Gracias por ayudarme no se nada de js

PHP:
jQuery(document).ready(function($){
  "use strict";
  /* setting the url ro submit the mail */
  var yourdomain = "http://localhost/";
  //form validation rules
  /* Error List to be displayed when recieved error via AJAX */
	var full_name_error = '<div class="alert alert-error"><button type="button" class="close" data-dismiss="alert">&times;</button>Please specify your name.</div>',
	email_error = '<div class="alert alert-error"><button type="button" class="close" data-dismiss="alert">&times;</button>We need your email address to contact you.</div>',
	invalid_email_error = '<div class="alert alert-error"><button type="button" class="close" data-dismiss="alert">&times;</button>Your email address must be in the format of name@domain.com.</div>',
	message_error = '<div class="alert alert-error"><button type="button" class="close" data-dismiss="alert">&times;</button>Enter your message.</div>',	
	mail_error = '<div class="alert"><button type="button" class="close" data-dismiss="alert">&times;</button>Your message has not been sent. Please try again later!</div>',
	mail_success = '<div class="alert alert-success"><button type="button" class="close" data-dismiss="alert">&times;</button>Your message has been sent. Thank you!</div>',
	phone_error = '<div class="alert alert-error"><button type="button" class="close" data-dismiss="alert">&times;</button>Enter your Phone Number.</div>';	
  
  jQuery.validator.addMethod("alphaspace", function(value, element) {
    return this.optional(element) || /^[a-zA-Z ]+$/.test(value);
  }, "Make sure you have entered aplhabets and spaces");
  
  jQuery.validator.addMethod("phonenumber", function(value, element) {
    return this.optional(element) || /^[0-9-]+$/.test(value);
  }, "Your Phone Number must be in the format of (111-1111-111 or only digits)");
  
  $(".contact_form form").validate({
    rules: {
      full_name: {
        required: true,
        alphaspace: true
        
      },
      email: {
        required: true,
        email: true
      },
      phone: {
        required: true,
        phonenumber: true
      },
      message: "required",
    },
    messages: {
      full_name: {
        required: "Please specify your name",
      },
      email: {
        required: "We need your email address to contact you",
        email: "Your email address must be in the format of name@domain.com"
      },
	  phone: {
        required: "You have not entered the Phone Number",
      },
      message: "Enter your message"
    },
    submitHandler: function() {
      //alert('form_submit');
      var form = $('.contact_form form');
      var full_name = form.find('[name="full_name"]').val();
      var email = form.find('[name="email"]').val();
	  var phone = form.find('[name="phone"]').val();
      var message = form.find('[name="message"]').val();
	        
      ContactAjax(full_name, email, phone, message);
    }
  });
  
  var ContactAjax = function($full_name, $email, $phone, $message){
    $.ajax({
      type: "POST",
      url: yourdomain + "contact_send.php",	//@TODO CHange to Live
      //dataType: "json" ,
      data: { full_name : $full_name, email : $email, phone: $phone, message : $message},
      success: function(data) {
        //console.log(data);
        var response = jQuery.parseJSON(data);			
        $(".contact_form form .result .alert").slideUp().remove();
        var contact_form = $('.contact_form form');
        if(response.success)
        {   contact_form.slideUp().height('0');
         contact_form.parent().append(mail_success);
        }else{
          var i;
          for(i=0; i<response.errors.length; i++){
            if(response.errors[i].error == 'empty_name')  {
              contact_form.find('[name="full_name"]').parent().append(full_name_error);
            }
            if(response.errors[i].error == 'empty_email')  {
              contact_form.find('[name="email"]').parent().append(email_error);
            }
            if(response.errors[i].error == 'empty_message')  {            
              contact_form.find('[name="message"]').parent().append(message_error);
            }
			if(response.errors[i].error == 'empty_phone')  {            
              contact_form.find('[name="phone"]').parent().append(phone_error);
            }
            if(response.errors[i].error == 'invalid'){
              contact_form.find('[name="email"]').parent().append(invalid_email_error);  
            }
            if(response.errors[i].error == 'mail_error'){
              contact_form.append(mail_error);  
            }
          }
        }
        jQuery('button.close').click(function(){
          if(jQuery(this).data('dismiss')==='alert'){
            jQuery(this).parent().remove();
          }
        });
        
      }	
    });
  };
  
});
 

entiendo... solo pon esto en tu PHP
PHP:
echo json_encode(array("success"=>true));

Y listo, el JS ya sabe que si es TRUE success muestre el texto que se envio correctamente...
 
entiendo... solo pon esto en tu PHP
PHP:
echo json_encode(array("success"=>true));

Y listo, el JS ya sabe que si es TRUE success muestre el texto que se envio correctamente...

Muchisimas gracias
 
Atrás
Arriba