[英]Calling a function using zend framework
我目前正在使用zend框架,並使用jquery和php。 嘗試實現自動檢查用戶名的可用性。
對於以下代碼,我需要調用我的控制器文件夾中的user_availability.php。 我做了/controllers/user_availability、../user_availability,但它沒有調用該頁面。 有人可以幫忙嗎?
$.post("user_availability.php",{ user_name:$(this).val() } ,function(data)
如果您確實想使用zend框架調用純文本php文件,則需要將其放在公用文件夾中,並將其命名為/user_availability.php,但幾乎可以肯定,使用戶可用性成為您的一項行為是更好的選擇控制器
查看“動作”和“查看幫助器”(取決於您要從何處調用腳本)。 動作助手可以從控制器中調用,並且可以保存在... / project / library中。
從視圖中,可以調用您編寫並存儲在... / projectname / application / view / helpers中的自定義View Helper。
您可能希望重組代碼以使其更適合框架,但是只需創建一個需要(包括).php腳本即可工作的助手。
看來您是在向非控制項發出頁面請求。 每當您在Zend Framework中發出請求時,它都會嘗試將請求的URL與系統中的路由進行匹配,這與控制器操作相對應。 所有這些都通過應用程序的index.php
文件處理-直接提供不同php文件的唯一方法是通過公用文件夾。
我的建議是創建一個控制器動作,該動作將檢查Ajax請求並以您選擇的格式(XML,json)返回某些內容(而不是呈現HTML模板)。
public function userAvailableAction()
{
if ($this->getRequest()->isXmlHttpRequest()) {
// check user availability
$this->_helper->json($data);
}
}
感謝大家。 我找到了解決方案。
您只需要將功能放入控制器頁面並調用功能名稱即可。
例如:
$.post("check",{ user_name:$(this).val() } ,function(data)
然后在您的控制器文件中,檢查用戶名的可用性確保您添加了檢查功能。
我的控制器頁面如下代碼:
class RegisterController extends Zend_Controller_Action {
public function checkAction(){
$users = new Users();
$username = $_POST['username'];
if($users->checkUnique($_POST['username'])){
echo "fail";
}
}
在這種情況下,checkUnique只是我的模型控制器中的一個sql語句,用於檢查用戶名是否存在。
對於我的jQuery代碼,它是:
$("#username").blur(function(){
//remove all the class add the messagebox classes and start fading
$("#msgbox").removeClass().addClass('messagebox').text('Checking...').fadeIn("slow");
//check the username exists or not from ajax
$.post("check",{ user_name:$(this).val() } ,function(data){
if(data=='no'){ //if username not avaiable
$("#msgbox").fadeTo(200,0.1,function(){ //start fading the messagebox
//add message and change the class of the box and start fading
$(this).html('This User name Already exists').addClass('messageboxerror').fadeTo(900,1);
});
}else {
$("#msgbox").fadeTo(200,0.1,function(){ //start fading the messagebox
//add message and change the class of the box and start fading
$(this).html('Username available to register').addClass('messageboxok').fadeTo(900,1);
});
}
});
});
我從以下鏈接獲得了此示例:
http://roshanbh.com.np/2008/04/check-username-available-ajax-php-jquery.html 。 看看吧。 希望對您有所幫助。 =)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.