2013-04-14 2 views
3

Я использовал этот точный код раньше - с PHP в качестве страницы обработки, но теперь в coldfusion (независимо от того, использую ли я cfc или просто cfm для обработки) jQuery doesn ' t, похоже, передает объект формы - ну ... если я посмотрю ответ от firebug, вкладка «post» ДАЕТ показать все поле и их значения. application/x-www-form-urlencoded. КАК НИКАКАЯ страница, ответственная за атрибут URL не получает его .. и (в примере delow) в консольном журнале (данных) отображается пустая строка.jquery - данные формы не передаются в вызове ajax

Вот что у меня есть ....

$('#create_client').on('click', function(event) { 

    //form validation 
    var bValid = true; 

    if (bValid) { 
     // AJAX Post data 
     $.ajax({ 
      type: 'POST', 
      dataType: 'html', 
      cache: false, 
      url: '/cfc/clent.cfc?method=put', 
      data: $('#client-form').serialize(), 
      success: function(data){ 
       console.log(data); 
       loadClientTable(); 
      }, 
      error: function(){ 
       // tell user there was a problem 
       $('#clients-message').html('<p>There was a problem submitting your request... Doh!</p>'); 
      } 
     }); 
    } 

} 

и вот форма

<form name="client-form" id="client-form" class="singleLineForm" > 
<label for="firstname">First Name: </label> 
<input type="text" name="firstname" id="firstname" value="" maxlength="15" class="text ui-widget-content ui-corner-all" /> 
<label for="lastname">Last Name: </label> 
<input type="text" name="lastname" id="lastname" value="" maxlength="15" class="text ui-widget-content ui-corner-all" /> 
<label for="email">Email: </label> 
<input type="text" name="email" id="email" value="" maxlength="50" class="text ui-widget-content ui-corner-all" /> 
<label for="password">Password: </label> 
<input type="text" name="password" id="password" value="" maxlength="20" class="text ui-widget-content ui-corner-all" /> 
<label for="isActive">Active? </label> 
<input type="checkbox" name="isActive" id="isActive" value="1" class="checkbox ui-widget-content ui-corner-all" /> 
<input type="button" name="create_client" id="create_client" value="Create Client" class="button ui-widget-content ui-corner-all" /> 
</form> 

нанесенная в ск выглядит следующим образом (на данный момент)

<cffunction name="put" access="public" returntype="structure" hint="PUT method, handles data transfering." > 
    <cfargument name="email" type="string" required="yes" > 
    <cfargument name="password" type="string" required="yes" > 
    <cfargument name="firstname" type="string" required="yes" > 
    <cfargument name="lastname" type="string" required="yes" > 
    <cfargument name="isActive" type="numeric" required="yes" > 

    <cfset _return = '' /> 

    <cfquery name="insertClient" datasource="#application.DSNwrite#" > 
     INSERT INTO clients 
     ( 
      email 
      ,password 
      ,firstname 
      ,lastname 
      ,isActive 
     ) 
     VALUES 
     ( 
      <cfqueryparam cfsqltype="cf_sql_varchar" value="#trim(arguments.email)#" /> 
      ,<cfqueryparam cfsqltype="cf_sql_varchar" value="#trim(arguments.password)#" /> 
      ,<cfqueryparam cfsqltype="cf_sql_varchar" value="#trim(arguments.firstname)#" /> 
      ,<cfqueryparam cfsqltype="cf_sql_varchar" value="#trim(arguments.lastname)#" /> 
      ,<cfqueryparam cfsqltype="cf_sql_bit" value="#val(arguments.isActive)#" /> 
     ) 
    </cfquery> 

    <cfreturn _return /> 
</cffunction> 
+0

Можете ли вы показать нам код в client.put()? –

+0

@scott - там ya go ... – jpmyob

+0

Возможно, попробуйте изменить POST на PUT? – 1337holiday

ответ

5

Ваш Метод CFC возвращает пустую строку.

У вас есть это:

<cfset _return = '' /> 

и в конце метода, у вас есть это:

<cfreturn _return /> 

Тем не менее, вы никогда не ставили _return другое значение. Для теста это проблема, попробуйте следующее:

<cfset _return = 'moo' /> 

Если вы получаете «мычание» вернулся, все работает, как ожидалось.

0

Вы можете сделать, как показано ниже, для передачи данных формы в ajax call.

var formData = $('#client-form').serialize(); 
$.ajax({ 
    url: '/cfc/clent.cfc?method=put&' + formData, 
    type: 'POST', 
    data:{ 
    }, 
    success: function(data){}, 
    error: function(data){}, 
}) 
Смежные вопросы