2013-11-22 1 views
0

У меня есть файл .cfc и .cfm. Я хочу вызвать функцию с именем «sendemail», расположенную в файле .cfc, и предупредить пользователя, как только функция завершится успешно. Я использую jquery, поэтому, когда пользователь нажимает на ссылку, она вызывает эту функцию.Использование AJAX для вызова CFC

Это то, что я до сих пор ...

index.cfm файл

<script> 
$(document).ready(function(){ 
$(".forgot-pin").click(function(){ 
    var getSchoolEmail = $("#schoolaccnt").val(); 

    if (getSchoolEmail == '0'){ 
     alert ("Please select school"); 
    }else{ 
     chkSchoolEmail = function(theAccNumber){ 
     $.getJSON("/email.cfc",{ 
      method:'sendemail', 
      accnumber: theAccNumber, 
      returnformat: 'json'  
     }, function(){ 
      alert("Your PIN Number has been sent to your email address."); 
     }); 
    } 

    } 
}); 

</script> 


<label>Please sign in below:</label> 
    <select id="schoolaccnt"> 
     <option value="0">Select Your School</option> 
      <cfoutput query="get_schools"> 
       <option value="#sch_id#">#sch_name#</option> 
      </cfoutput> 
    </select> 
<span class="forgot-pin">Forgot PIN?</span> 

email.cfc файл

<cffunction name="sendemail" access="remote" returnformat = "json" > 
<cfargument name="accnumber" required="true" type="string"> 
<cfset object = CreateObject("Component","cfobject")> 
    <cfquery name="get_schools" datasource="#dsn#"> 
     SELECT sch_id,sch_name,sch_email_address,sch_pin_num 
     FROM DATABASENAMEHERE 
     WHERE sch_id = '#trim(accnumber)#' 
    </cfquery><!--- ---> 
     <cfmail from="EMAIL" to=EMAILPULLEDOUTFROMDATABASE type="html" subject="Your PIN" > 
      Your PIN is <cfoutput>PINGOTFROMDB</cfoutput> 
     </cfmail> 
    <cfset result = 1> 
<cfreturn object> 

Если пользователь не знает его/ее палец , он/она выбирает из выпадающего списка и нажимает на ссылку «забытый контакт», и он должен предупредить «контакт, отправленный на адрес электронной почты».

Моя проблема:
JQuery не вызывает функцию. Я не уверен, правильно ли он структурирован или если я что-то упускаю.

Любые мысли в решении этого будут действительно оценены!

* ** EDIT ** * *

function sendMyPin(schoolaccnt){ 
var getschool = document.getElementById("schoolaccnt").value; 
    if (getschool == '0') { 
     alert("Please select school."); 
    } else { 
    DWREngine._execute("email.cfc", null, 'sendemail', getschool, getEmailResult); 
    } 

function getEmailResult(emailObject){ 
alert('Your PIN has been sent to your e-mail.');     
} 

Сейчас это не работает на ХРОМ !!! но отлично работает в IE и FF

+3

Мои мысли - делать одно за раз. Прежде всего, убедитесь, что ваша функция действительно работает, вызывая ее с страницы coldfusion. –

+0

Нажмите F12 и проверьте консоль браузера на наличие ошибок. –

+0

Ваш JS-код пытается вызвать 'send_email_function.cfc', но вы указали, что имя CFC было' Email.cfc'. –

ответ

0

Обработчик кликов определяет только функцию chkSchoolEmail = function(theAccNumber){...}. Это не называется.

$(".forgot-pin").click(function(){ 
    var getSchoolEmail = $("#schoolaccnt").val(); 

    if (getSchoolEmail == '0'){ 
     alert ("Please select school"); 
    } else { 
     $.getJSON("/email.cfc",{ 
      method:'sendemail', 
      accnumber: theAccNumber, 
      returnformat: 'json'  
     }, function(){ 
      alert("Your PIN Number has been sent to your email address."); 
     }); 
    } 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^