2011-06-24 95 views
0

我一直在開發一個非常簡單的WordPress插件,並希望對頁面上某些字段進行實時驗證,這是我卡住的地方。我一直在尋找有效的東西,而且我根本無法使其發揮作用。WordPress插件管理頁面 - 在鏈接的php文件中使用WordPress功能

我一直在試圖讓ajax正常工作,我知道我錯過了一些明顯的東西,我只是無法弄清楚。

主要功能文件包括此註冊我的js文件。

function on_screen_validation() { 
    wp_enqueue_script("field_validation", path_join(WP_PLUGIN_URL, basename(dirname(__FILE__))."/field-validation.js"), array('jquery')); 
} 
add_action('admin_print_scripts', 'on_screen_validation'); 

js運行此代碼來捕獲onblur命令並將值傳遞給php驗證文件。

jQuery(document).ready(function() { 
    //run field validation on username on blur 
    jQuery('.valusername').blur(function() { 

     var usernameID = jQuery(this).attr('id'); 
     var usernameVal = jQuery('#'+usernameID).val(); 
     var thisFunction = 'validateUserName'; 

     jQuery.post("mywebaddress...validation.php",{Function: thisFunction, thevars: usernameVal}, function(data) { 
      alert(data); //would update validation message here 
     }); 
    }); 
}); 

而且validation.php腳本是這樣的:

if(isset($_POST['Function'])){ 
    call_user_func($_POST['Function'], $_POST['thevars']); 
} 

function validateUserName($username){ 
    if (username_exists($username)) { 
     echo $username.' does exist'; 
    } else { 
     echo $username.' doesnt exist'; 
    } 
} 

很顯然,我只是用警報現在,以確保數據經過適當的檢查。

如果我拿出WordPress的username_exists函數,只是回顯一個字符串,它可以正常工作。但是使用username_exists,它會創建一個500內部服務器錯誤。我需要知道如何獲得這個外部validation.php文件來識別WordPress的功能(我認爲),到目前爲止我找不到任何東西。

感謝您的閱讀...對於長時間的解釋抱歉,我只是想確保上下文都在那裏,所以它是有道理的(我希望!)!

乾杯,馬特

+0

也許是[WordPress的答案](http://wordpress.stackexchange.com)的問題? – 2011-06-24 04:26:47

+0

@KeokiZee:這是一個關於話題的地方,所以我傾向於放棄它。 –

回答

0

你缺少一個右括號在validateUserName功能:

function validateUserName($username) { 
    if (username_exists($username)) { 
     echo $username.' does exist'; 
    } else { 
     echo $username.' doesn\'t exist'; 
    } 
} 

應該工作。

作爲一個功能,但是,它可能會更好返回一個值,和回聲結果自己:

function validateUserName($username) { 
    if (username_exists($username)) { 
     return $username.' does exist'; 
    } else { 
     return $username.' doesn\'t exist'; 
    } 
} 

echo validateUserName($someUsername); 
+0

哎呀抱歉,偶然錯過了大括號,已經更新了問題...但是,您的第二個版本的功能似乎沒有什麼差別,我仍然得到內部服務器錯誤。 – HappyNuclear