簡體   English   中英

使用zend框架調用函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM