是否可以有两种表单来保存插件选项(一个插件页面),并分别提交每个表单?
使用一个表单非常简单。 例如,插件页面(在仪表板中)可以包含此(最小):
<form action="options.php" method="post" >
<?php settings_fields( 'my-settings' ); ?>
<?php do_settings_sections( 'my-settings' ); ?>
//more input fields
<?php submit_button(); ?>
</form>
为了保存选项,这可以正常工作。但是,有可能有两个这样的表单,使用相同的插件选项页面(但在提交时,只保存表单中的选项,我点击提交按钮)?
目前,如果我创建另一个表单,并点击提交,它仍然会提交这两个表单,而不仅仅是一个(因为我点击了提交按钮)。
有什么想法吗?
答案 0 :(得分:1)
我不是采用这种方法,而是使用ajax代替。它更容易实现,并将为您的插件提供非常Web 2.0的感觉。在您的情况下,它实际上更容易实现ajax方法,而不是尝试做你正在做的事情。 Here is让你入门的东西。
<?php
add_action('admin_print_scripts', 'my_action_javascript');
function my_action_javascript() {
?>
<script type="text/javascript" >
jQuery(document).ready(function($) {
var data = {
action: 'my_action',
whatever: 1234
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(ajaxurl, data, function(response) {
alert('Got this from the server: ' + response);
});
});
</script>
<?php
}
然后您可以像这样处理请求:
<?php
add_action('wp_ajax_my_action', 'my_action_callback');
function my_action_callback() {
global $wpdb; // this is how you get access to the database
$whatever = intval( $_POST['whatever'] );
$whatever += 10;
echo $whatever;
die(); // this is required to return a proper result
}