我正在使用适用于Android的phonegap开发应用。我希望这个移动应用程序使用jquery和json对象将一些数据(主要是文本)发送到cakephp支持的外部服务器。
我对cakephp和MVC结构比较陌生,并且对如何在蛋糕中进行此操作表示赞赏。我基本上想要phonegap将formdata发送到cakeapplication,然后将蛋糕保存到数据库中。这是我正在考虑用于在phonegap中发送数据的代码:
HTML表单:
<form method="post" id="infoForm">
<input type="text" name="first_name" id="first_name" value="" placeholder="First Name" />
<input type="text" name="last_name" id="last_name" value="" placeholder="Last Name" />
<input type="text" name="email" id="email" value="" placeholder="Email" />
<button type="submit">Submit</button>
</form>
Jquery的:
$('#infoForm').submit(function() {
var postTo = '//url to cakeapplication';
$.post(postTo,({first_name: $('[name=first_name]').val(), last_name: $('[name=last_name]').val(), email: $('[name=email]').val()}),
function(data) {
alert(data);
if(data != "") {
// do something
} else {
// couldn't connect
}
},'json');
return false;
});
有人可以提供关于如何处理这些数据的一般说明吗?
谢谢!
答案 0 :(得分:4)
PHP5具有json_encode()
和json_decode()
功能,这些功能非常有用。如果你坚持PHP4,我相信Cake有JSON Compenent。我不能对后者说太多,但是调用PHP5 json_decode()
将产生一个PHP对象,您可以使用该对象构造一个Cake数据数组以保存在数据库中。
你想要的是让你的AJAX函数在Cake控制器中调用一个方法(例如add()
)来处理将数据保存到数据库中。 Cake的save
方法需要一个特殊格式的数组,它的结构is detailed here,所以你必须自己手动构建它。
假设您的PhoneGap数据的模型化数据库表称为“Phonegap”(在这种情况下,您将拥有PhonegapModel
和PhonegapsController
)。用于保存的数据数组具有以下结构:
function add() {
$this->data = array(
'Phonegap' => array(
'first_name' => 'value',
'last_name' => 'value',
'email' => 'value'
)
);
$this->Phonegap->save($this->data);
}
当您执行AJAX帖子时,JSON对象可能通过控制器中的$this->params['form']
(根据here)提供。我不完全确定你对CakePHP有多了解,所以如果有些事情需要澄清,请告诉我。