Я использовал этот точный код раньше - с 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>
Можете ли вы показать нам код в client.put()? –
@scott - там ya go ... – jpmyob
Возможно, попробуйте изменить POST на PUT? – 1337holiday