【发布时间】:2014-08-28 19:24:52
【问题描述】:
我有一个需要 getuser.php 的主插件文件(也是插件文件)。 在 getuser.php 我写了一个函数 getuser()
现在在主插件文件中,我尝试使用以下代码调用此函数:
主插件文件:
<?php
/*
Plugin Name: FixFormData
Description: If you want to autocomplete a form with existing data, this plugin is for you.
Version: 1.1
Author: Stijn Aerts
Author URI: http://stijnaerts.be
License: GPL2
*/
require( plugin_dir_path( __FILE__ ) . 'menu.php');
//require_once( plugin_dir_path( __FILE__ ) . 'getuser.php');
add_action( 'wp_footer', 'ajax_lookup_userdata' );
function ajax_lookup_userdata(){
if (!is_admin()) {
wp_enqueue_script('jquery');
}
?>
<script type="text/javascript">
jQuery(document).ready(function($){
jQuery('#input_1_2').change(function(){showUserName(this.value);});
function showUserName(str){
if(str==''){jQuery('#input_1_3').val('');}
jQuery.get("<?php echo plugins_url() . '/FixFormData/getuser.php'; ?>", { q: str }, function(response){
var parsed = JSON.parse(response);
var arr = [];
for(var x in parsed){ arr.push(parsed[x]);}
jQuery('#input_1_3').val(arr[1]);
jQuery('#input_1_4').val(arr[2]);
});
}
});
</script>
<?php
}
?>
getuser.php:
<?php
if (isset($_POST['q']) && !empty($_POST['q'])) {
getuser($_POST['q']);
exit;
}
function getuser($str)
{
//$q = intval($_GET['q']);
//include "../../../wp-load.php";
global $wpdb;
$myoption = get_option( 'fixformdata_options' );
$myoptionValue = maybe_unserialize( $myoption );
$result2 = $wpdb->get_row
(
$wpdb->prepare
(
"SELECT * FROM {$myoptionValue[tablename]} WHERE personeelsNummer = %d", $str
)
);
if($result2)
{
echo json_encode( $result2 );
}
}
?>
这仍然不起作用。
【问题讨论】:
-
您正在尝试使用 javascript 调用 php 函数?你不能这样做
-
是的,我知道,我也试过 等等
-
getuser()是做什么的?它是否返回一个变量? -
返回json数据
-
你可能想试试
wp_localize_script。这样您就可以将 json 信息传递给 jQuery。一个很好的参考是:https://pippinsplugins.com/use-wp_localize_script-it-is-awesome/。 cmets 也很有用。
标签: php jquery wordpress plugins