Данные JQuery неправильно отправляются в CFC - PullRequest
0 голосов
/ 19 июля 2011

Так что я не могу понять, почему моя функция CFC не работает ... firefug говорит, что работает, но ничего не происходит.

   <cffunction name="deleteRequest" access="remote" returntype="void">
    <cfargument name="id" type="numeric" required="yes">

    <cfquery name = "deleteRequests" datasource = "#application.dsn#">
    DELETE FROM requests
    WHERE ID = <cfqueryparam cfsqltype="cf_sql_numeric" value = "#id#">
    </cfquery>

    <cfreturn>
</cffunction>

JQUERY / javascript:

        $("input[name=delete]").click(function(){
        var z = deleteRequest($(this).attr("id")); 
        var y = $(this).attr("id");
        if(z){
        $.ajax({
        type: 'POST',
        url: '/cfc/request.cfc',
        data: {id: y, method: "deleteRequest"}
        });
        } 
     }); 

      function deleteRequest(id){
        var x = confirm("Are you SURE you want to DELETE this?");
        if(x){return 1;}
        return 0;
      }

Jquery работает ... и отправляет его, и якобы попадает туда ... но ничего не происходит.Я проверил CFC и вызвал его вручную, и он работает.Я предполагаю, что это как-то связано с моими переменными.Я подумал, что, возможно, id нужен parseInt (), но это тоже не помогло.

Все, что нужно сделать, это удалить запись из БД.Что я делаю не так?

* Извините за простой вопрос.У меня много проблем с JQUERY + CFC ... Я искал хорошие учебники ... но я никогда не смог найти хороших учебников для начинающих.

ОБНОВЛЕНИЕ: Попробовал изменить URL, чтобы получить методпараметр в нем и изменил доступ к общедоступным ... все те же результаты.

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Пожалуйста, попробуйте:

<cffunction name="deleteRequest" access="public" returntype="void">

    <cfquery name = "deleteRequests" datasource = "#application.dsn#">
    DELETE FROM requests
    WHERE ID = <cfqueryparam cfsqltype="cf_sql_numeric" value = "#id#">
    </cfquery>

<cfreturn>
</cffunction>

 $("input[name=delete]").click(function(){
    var z = deleteRequest($(this).attr("id")); 
    var y = $(this).attr("id");
    if(z){
    $.ajax({
    type: 'POST',
    url: '/cfc/request.cfc?method=deleteRequest',
    data: {id: y}
    });
    } 
 }); 

  function deleteRequest(id){
    var x = confirm("Are you SURE you want to DELETE this?");
    if(x){return 1;}
    return 0;
  }
0 голосов
/ 19 июля 2011

Мы очень интенсивно используем этот стиль вызова в наших приложениях без особых проблем.Глядя на код, мы склонны использовать предложенный стиль dknaack с именем метода в URL, но с данными, представленными в качестве аргументов.Вы пытались использовать Fiddler (fiddler2.com) для перехвата вызовов, чтобы убедиться, что он определенно вызывает ваш код.Кроме этого, я использовал бы <CFLOG> в вашем методе для записи передаваемых данных или отладчик, если вы настроены на его использование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...