2017-01-16 7 views
6

मुझे शायद इस पर एक डुप्लिकेट मिलेगा लेकिन मैंने खोजा और खोजा है और मुझे कोई भी वाक्यविन्यास के साथ एक ही समस्या का सामना नहीं कर रहा है, इसलिए उम्मीद है कि कोई मुझे कुछ देख सकता है ' मैं लापता हूँ PHP मेरा मजबूत सूट नहीं है, लेकिन मैं कई ट्यूटोरियल और कक्षाओं से गुजर चुका हूं और सुधार करने की कोशिश कर रहे काम का एक गुच्छा किया है, यही कारण है कि यह मुझे इतना परेशान कर रहा है। मेरे पास एक बहुत ही सरल HTML फॉर्म है जिसे मैं PHP का उपयोग करके ईमेल भेजने की कोशिश कर रहा हूं। मुझे इसका उपयोग करने के लिए उपयोग किए जाने वाले कार्यों से ऐसा करने का एक अलग तरीका मिला, और इसे एक शॉट देना चाहता था। सब कुछ काम की तरह काम करता है प्रतीत होता है (मैंने console.log, अलर्ट, और पॉपअप के साथ परीक्षण किया है, ठीक है, पॉप अप करता है, इसलिए अगर मैं गलत नहीं हूं तो "सफलता" PHP फ़ाइल में काम कर रही है। मेरे मुद्दों की परिणामी समस्या यह है कि मुझे फॉर्म से कभी भी ईमेल प्राप्त नहीं होता है (मैंने इस प्रश्न पूछने के प्रयोजनों के लिए एक डमी ईमेल डाल दिया है)ईमेल भेजने के लिए फॉर्म नहीं मिल सकता है

मुझे पता है कि मेरे पास कोई फॉर्म एक्शन नहीं है = "कुछ .php "या फ़ॉर्म से सीधे एक फ़ंक्शन कॉल है, लेकिन इस विधि से मैं जो समझता हूं उससे यह सब कुछ है कि सबकुछ जमा हो जाता है। फिर, जैसा कि सबकुछ काम करता है लेकिन ईमेल, मुझे यकीन नहीं है कि सौदा क्या है।

मुझे यह देखना अच्छा लगेगा कि क्या मुझे और अधिक अनुभवी आंखें मिल सकती हैं जो मुझे याद आ रही है। होस्टिंग प्रदाता गोडाडी है यदि यह मायने रखता है। किसी भी सहायता के लिए धन्यवाद कोई भी पेशकश कर सकते हैं।

var contactForm = $("#main-contact-form"); 
    contactForm.submit(function(event) { 
     event.preventDefault(); 
     submitForm();   
    }); 
    function submitForm() { 
     var firstName = $("#first-name"); 
     var lastName = $("#last-name"); 
     var email = $("#email"); 
     var phone = $("#phone"); 
     var company = $("#company"); 
     var contactType = $("#contact-type"); 
     var message = $("#message"); 

     $.ajax({ 
      type: "POST", 
      url: "php/main-contact-form.php", 
      data: "firstName=" + firstName + "&lastName" + lastName + "&email" + email + "&phone" + phone + "&company" + company + "&contactType" + contactType + "&message" + message, 
      success: function(text) { 
       if (text == "success"){ 
        formSuccess(); 
       } 
      } 
     });   
    } 
    var contactSuccess = $(".contact-submission-success") 
    function formSuccess(){ 
     contactSuccess.addClass("show", 200); 
    } 
});  

यहाँ मेरी php कोड है::

<form class="main-contact-form" id="main-contact-form"> 
      <div class="row"> 
       <div class="col-md-6"> 
        <input id="first-name" name="firstName" type="text" placeholder="First Name (Required)" onfocus="this.placeholder = ''" onblur="this.placeholder = 'First Name (Required)'" /> 
       </div> 
       <div class="col-md-6"> 
        <input id="last-name" name="lastName" type="text" placeholder="Last Name (Required)" onfocus="this.placeholder= ''" onblur="this.placeholder= 'Last Name (Required)'" /> 
       </div> 
       <div class="col-md-6"> 
        <input id="email" name="email" type="email" placeholder="Email (Required)" onfocus="this.placeholder= ''" onblur= "this.placeholder= 'Email (Required)'" /> 
       </div> 
       <div class="col-md-6"> 
        <input id="phone" name="phone" type="phone" placeholder= "Phone Number" onfocus= "this.placeholder= ''" onblur="this.placeholder= 'Phone Number'" /> 
       </div> 
       <div class="col-md-6"> 
        <input id="company" name="company" type="text" placeholder="Company" onfocus="this.placeholder= ''" onblur= "this.placeholder= 'Company'" /> 
       </div> 
       <div class="col-md-6"> 
        <select id="contact-type" name="contactType"> 
         <option value="" selected>I'd like to...</option> 
         <option class="contact-option" value="Contact sales">Contact sales</option> 
         <option value="Get a quote">Get a quote</option> 
         <option value="Contact customer service">Contact customer service</option> 
        </select> 
       </div> 
       <div class="col-12"> 
        <textarea id="message" placeholder="What can we do for you?" onfocus="this.placeholder= ''" onblur="this.placeholder= 'What can we do for you?'" /></textarea> 
       </div> 
       <div class="col-md-6 push-md-3"> 
        <button type="submit">Submit</button> 
       </div> 
      </div> 
     </form> 

यहाँ मेरी जे एस कोड है:

यहाँ मेरी एचटीएमएल है (पेज एक .php विस्तार है)

<?php 
$firstName = $_POST["firstName"]; 
$lastName = $_POST["lastName"]; 
$email = $_POST["email"]; 
$phone = $_POST["phone"]; 
$company = $_POST["company"]; 
$contactType = $_POST["contactType"]; 
$message = $_POST["message"]; 

$EmailTo = "[email protected]"; 
$subject = "New Contact Form Message Received"; 

$Body .= "First Name: "; 
$Body .= $firstName; 
$Body .= "\n"; 

$Body .= "Last Name: "; 
$Body .= $lastName; 
$Body .= "\n"; 

$Body .= "Email: "; 
$Body .= $email; 
$Body .= "\n"; 

$Body .= "Phone: "; 
$Body .= $phone; 
$Body .= "\n"; 

$Body .= "Company: "; 
$Body .= $company; 
$Body .= "\n"; 

$Body .= "Contact Type: "; 
$Body .= $contactType; 
$Body .= "\n"; 

$Body .= "Message: "; 
$Body .= $message; 
$Body .= "\n"; 

$success = mail($EmailTo, $Subject, $Body, "From:".$email); 

if ($success) { 
    echo "success"; 
} else { 
    echo "invalid"; 
} 

?> 
+0

सदाबहार सही लगता है। एसएमटीपी सर्वर के कारण स्थानीय पर मेल नहीं भेजा जाता है, अपना कोड तैनात करने और इसे ऑनलाइन चलाने का प्रयास करें, यह मेल भेज देगा। –

+4

मैं मेल() का उपयोग करना बंद कर देता हूं, phpmailer – nogad

+0

पर नज़र डालें, मैंने कभी "मेल वर्क" नहीं किया है, लेकिन दूसरों के पास है, http://php.net/manual/en/function.mail.php#118210 देखें – Joe

उत्तर

5

ठीक है, मुझे लगता है कि आपकी समस्या यहां है:

function submitForm() { 
    var firstName = $("#first-name"); 
    var lastName = $("#last-name"); 
    var email = $("#email"); 
    var phone = $("#phone"); 
    var company = $("#company"); 
    var contactType = $("#contact-type"); 
    var message = $("#message"); 

    $.ajax({ 
     type: "POST", 
     url: "php/main-contact-form.php", 
     data: "firstName=" + firstName + "&lastName" + lastName + "&email" + email + "&phone" + phone + "&company" + company + "&contactType" + contactType + "&message" + message, 
     success: function(text) { 
      if (text == "success"){ 
       formSuccess(); 
      } 
     } 
    });   
} 

आपको इनपुट का मूल्य प्राप्त करने की आवश्यकता है, न कि इनपुट स्वयं। उदाहरण के लिए, यदि आप ऐसा करते हैं:

var miValue = $("#first-name"); 

आपको डोम तत्व मिल रहा है, मूल्य नहीं। मूल्य पाने के लिए आपको वैल समारोह कॉल करना होगा:

var miValue = $("#first-name").val(); 

और अपने कार्य इस तरह दिखना चाहिए:

function submitForm() { 
    var firstName = $("#first-name").val(); //Call the val() function 
    var lastName = $("#last-name").val(); 
    var email = $("#email").val(); 
    var phone = $("#phone").val(); 
    var company = $("#company").val(); 
    var contactType = $("#contact-type").val(); 
    var message = $("#message").val(); 

    $.ajax({ 
     type: "POST", 
     url: "php/main-contact-form.php", 
     data: "firstName=" + firstName + "&lastName" + lastName + "&email" + email + "&phone" + phone + "&company" + company + "&contactType" + contactType + "&message" + message, 
     success: function(text) { 
      if (text == "success"){ 
       formSuccess(); 
      } 
     } 
    });   
} 

आप यहाँ वैल के बारे में अधिक पढ़ सकते हैं: val() jQuery

+0

मैं एक स्ट्रिंग के बजाय 'डेटा' ऑब्जेक्ट का उपयोग करने की अनुशंसा करता हूं, उदाहरण के लिए 'डेटा: {firstName: firstName, lastName: lastName, ...} ' – Phil

+2

... या इससे भी बेहतर,' डेटा: contactForm।serialize() ' – Phil

+0

फिल और लुइस धन्यवाद, दुर्भाग्य से अभी भी कोई ईमेल नहीं है। मुझे यह एहसास नहीं हुआ था, लेकिन उदाहरण मैं काम कर रहा था .val(), मैं बस कोशिश करने के लिए जल्दी में था और इसे याद किया। काम नहीं किया, लेकिन आप निश्चित रूप से अपनी सिफारिशों में सही थे। उन लोगों के लिए जिन्होंने "सही ईमेल का उपयोग किया", मैं था, बस इसे यहां पोस्ट नहीं करना चाहता था। हालांकि धन्यवाद। मैंने phpmailer को nogad अनुशंसित के रूप में डाउनलोड किया है और वह एक शॉट देने जा रहा हूं। मदद करने की कोशिश करने के लिए सभी को धन्यवाद। – PhilT41

0

मुझे लगता है कि समस्या ईमेल से आपके साथ है। क्या यह वैध है? आपको इसे पोस्ट करने की आवश्यकता नहीं है, बस इसे PHP कोड में हार्डकोड करें या कॉन्फ़िगरेशन मान का उपयोग करके बेहतर करें।

+0

यह शायद उत्तर की तुलना में एक टिप्पणी के रूप में बेहतर होगा। –

संबंधित मुद्दे