У меня есть файл .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
Мои мысли - делать одно за раз. Прежде всего, убедитесь, что ваша функция действительно работает, вызывая ее с страницы coldfusion. –
Нажмите F12 и проверьте консоль браузера на наличие ошибок. –
Ваш JS-код пытается вызвать 'send_email_function.cfc', но вы указали, что имя CFC было' Email.cfc'. –