Lax*_*idi 3 php select jquery-forms-plugin wordpress-plugin
我正在尝试在Wordpress插件中使用jQuery的Form插件.我正在关注这个例子.我已经将我的脚本排队并构建了我的表单.在csf_form_handler.php中,相当于示例的json-echo.php,我可以访问在我的表单中选择的项目(我有一个radiobutton组).
我的目标是使用SELECT语句中表单中选择的值来从自定义wordpress数据库表返回数据.
$csf_selected_sport = $_POST['csf_radiobutton_group_sport'];
global $wpdb;
$csf_db_table = $wpdb->prefix . "activity";
$csf_data = $wpdb->get_results($wpdb->prepare("
SELECT *
FROM " .$csf_db_table. "
WHERE " . $csf_selected_sport ." "));
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到了:
注意:尝试获取非对象的属性(在$ wpdb->前缀行上)
致命错误:在非对象上调用成员函数get_results()(在$ csf_data行上)
上面的代码 csf_form_handler.php不在函数中.我不知道这是否有所作为.
如何更改代码以便我可以使用$ wpdb?
谢谢.
Uma*_*azi 14
我遇到了同样的问题,但我通过包含wp-config.phpWordPress文件夹根目录中的文件解决了这个问题:
require_once('../../../wp-config.php');
global $wpdb;
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助.
在编写插件时,最好将数据处理保存在插件的主文件中(即不将其发送到单独的文件中),并激活相应处理它的函数.基本上,您可以将表单的操作设置为指向插件的文件或包含表单的页面.
假设您正在处理的表单显示在站点的前端,侧栏上.要在用户单击"提交"时处理来自该表单的数据,您可以在我们的插件文件中创建一个函数,例如:
function $csf_get_data(){
global $wpdb; //since your this function is in your plugin’s file, $wpdb should be available, so no errors here! =)
$csf_selected_sport = $_POST['csf_radiobutton_group_sport'];
$csf_db_table = $wpdb->prefix . "activity";
$csf_data = $wpdb->get_results($wpdb->prepare("
SELECT *
FROM " .$csf_db_table. "
WHERE " . $csf_selected_sport ." "));
//do your stuff with $csf_data
}
//now run it everytime the plugin is run
if(isset($_POST[‘submit’])){
$csf_get_data();
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以设置表单操作的属性以将数据发送到同一页面,该页面将能够使用上述功能处理它.你可以使用:
action=””
Run Code Online (Sandbox Code Playgroud)
要么
action="<?php the_permalink()?>"
Run Code Online (Sandbox Code Playgroud)
请注意:为了确保数据来自您的网站(特别是公共表单),请记住使用wp_nonce_field()创建一个nonce字段,可以通过wordpress通过wp_nonce()验证:http://codex.wordpress.org / Function_Reference/wp_nonce_field
希望有所帮助,
VQ.
| 归档时间: |
|
| 查看次数: |
31442 次 |
| 最近记录: |