顯示獲取匹配的記錄,我要檢查,如果他/她的數據是使用電子郵件地址數據庫表。如果它在那裏,它應該獲取匹配記錄(姓名,地址,城市,州,郵政編碼)並將其顯示在表單中。如果電子郵件地址不在數據庫表中,應該允許用戶填寫表格的其餘部分。CakePHP的:使用電子郵件地址和當用戶輸入自己的電子郵件地址的形式
我使用CakePHP和MySQL這個項目。這可以使用AJAX完成嗎?做到以上的最好方法是什麼?
謝謝。
顯示獲取匹配的記錄,我要檢查,如果他/她的數據是使用電子郵件地址數據庫表。如果它在那裏,它應該獲取匹配記錄(姓名,地址,城市,州,郵政編碼)並將其顯示在表單中。如果電子郵件地址不在數據庫表中,應該允許用戶填寫表格的其餘部分。CakePHP的:使用電子郵件地址和當用戶輸入自己的電子郵件地址的形式
我使用CakePHP和MySQL這個項目。這可以使用AJAX完成嗎?做到以上的最好方法是什麼?
謝謝。
最好的辦法確實使用AJAX。我綁定到電子郵件字段的類型事件定義一個函數,然後把它拿到你的控制器動作,如果有任何,則填補了這一數據到使用Javascript相應的字段專門返回用相應的數據JSON對象。
我在下面使用JQuery做到了這一點。
在你看來:
筆記:controller/action
是應該在控制器中調用操作,也#emailbox
被認爲是電子郵件形式的ID。 #otherbox
是其他表單元素的id的佔位符。
<script type="text/javascript">
$(document).ready(function() {
$('input#emailbox').keyup(function() {
// could do other stuff here, like show load bar or clear old results
//run the ajax
getPage();
});
});
function getPage() {
//generate the parameter for the php script
var data = {email: $("#emailbox").val()};
$.ajax({
url: '/controller/action',
type: 'GET',
data: data,
dataType: 'json',
cache: false,
success: function (data) {
//add the content retrieved from ajax into whatever forms you like
$("#otherbox").val(data.[User][information][here]);
$("#otherbox").val(data.[User][information][here]);
$("#otherbox").val(data.[User][information][here]);
$("#otherbox").val(data.[User][information][here]);
}
});
}
</script>
需要注意的是Chrome瀏覽器開發工具可以幫助調試你要回來,你能弄清楚如何訪問相關數據每個字段的JSON對象。
在你的控制器:
public function searchForDetails() {
if($this->request->is('ajax')) {
$this->autoRender = false;
//Get the email parameter data- this is one way to do it, you could also do it plenty of other ways
$email = $this->request->query['email'];
//Get user data- I have given an example of how to do so:
$userdata = $this->User->find('first', array(
'conditions' => array(
'User.email' => $email,
'recursive' => -1));
return(json_encode($userdata));
}
}
這是你可以去它的一種方式。您所要做的工作是使用chrome調試JSON對象(使用命令shift j來訪問開發工具)並找出對象內部數組的佈局,以便設置各個表單的值。我還沒有測試過這種方法的效率,如果你正在開發Facebook,你可能不應該這樣做。
我只是想知道,如果AJAX和CakePHP單獨suffient爲了這個目的? – vaanipala 2012-03-14 06:23:11
是的,Ajax和cakephp就足夠了。下面我已經向你展示瞭如何(取決於你的蛋糕版本)。 – swiecki 2012-03-14 15:26:50
好的,我將首先做一些AJAX修訂。我會試試看,讓你知道。 – vaanipala 2012-03-15 03:44:32