gpt4 book ai didi

jquery - 表单数据未在ajax调用中传递

转载 作者:行者123 更新时间:2023-12-01 01:01:49 24 4
gpt4 key购买 nike

我之前使用过这个确切的代码 - 使用 PHP 作为处理页面,但现在在 Coldfusion 中(无论我使用 cfc 还是只是 cfm 来处理),jQuery 似乎没有传递表单对象 -好吧...如果我查看 firebug 响应,“post”选项卡会显示所有字段及其值。 application/x-www-form-urlencoded 然而,负责 URL 属性的页面没有得到它。 .并且(在下面的示例中)控制台日志( data )显示一个空字符串。

这是我所拥有的......

$( '#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>

cfc 中的内容如下所示(目前)

<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>

最佳答案

您的 CFC 方法返回空字符串。

你有这个:

<cfset _return = '' />

在方法的最后,你会看到:

<cfreturn _return />

但是,您从未将 _return 设置为其他值。要测试这是否是问题所在,请尝试以下操作:

 <cfset _return = 'moo' />

如果返回“moo”,则一切正常。

关于jquery - 表单数据未在ajax调用中传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15995363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com