Ich habe Probleme, etwas von der zweiten Form in dieser Klasse zu buchen.Zweites Formular in Seite funktioniert nicht
Das erste Formular lädt die Datei in Ordnung, und ich kann es in ein Array analysieren. Die zweite Form, die ich auf der Seite widerspreche, tut jedoch nichts beim Senden.
Haben Sie irgendwelche Ideen?
Danke!
public function __construct() {
add_action('admin_menu', array($this, 'asbcb'));
}
function asbcb() {
$page_title = 'Build';
$menu_title = 'Build';
$capability = 'manage_options';
$menu_slug = 'build';
$function = array($this, 'sbcb');
add_management_page($page_title,$menu_title,$capability,$menu_slug,$function);
}
function sbcb() {
$output = '';
$output .= '<form id="upload" action="" method="post" enctype="multipart/form-data">';
$output .= '<p><input type="file" name="file"></p>';
$output .= get_submit_button("Upload","primary","upload");
$output .= '</form>';
echo $output;
$this->upload();
}
function upload() {
if(isset($_POST['upload']) && ! empty($_FILES)) {
$file = $_FILES['file'];
$dir = plugin_dir_path(__FILE__);
$path = $dir.'pages/';
if(!is_dir($path)) mkdir($path);
$url = $path.$file['name'];
$uploaded = move_uploaded_file($file['tmp_name'], $path.$file['name']);
if ($uploaded) {
$this->parse_CSV($url);
} else {
print_r($file['error']);
}
}
}
function parse_csv($csv) {
$columns = array();
if (($handle = fopen($csv, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$columns[] = $data;
}
fclose($handle);
}
$this->fields();
}
function fields(){
$output = '';
$output .= '<form id="build" action="" method="post">';
$output .= '<select class="fields" name="fields[]">';
$output .= '<option value="title">Title</option>';
$output .= '<option value="slug">Slug</option>';
$output .= '<option value="metatitle">Meta title</option>';
$output .= '<option value="metadesc">Meta description</option>';
$output .= '<option value="template">Template</option>';
$output .= '<option value="metakey">Meta key</option>';
$output .= '<option value="metavalue">Meta value</option>';
$output .= '</select> ';
$output .= get_submit_button("Build","primary","build");
$output .= '</form>';
echo $output;
$this->fields_to_array();
}
function fields_to_array() {
if (isset($_POST['fields'])) {
$fields = $_POST['fields'];
var_dump($fields);
}
}
Hey @mickmackusa - Danke für die Info. Was ist, wenn ich zwei verschiedene Aktionen möchte? – producto
@producto Es spielt keine Rolle, welche Attribute Sie in die Formulare schreiben. Die Formulardaten sind grundsätzlich in jedem Formularblock gefangen. – mickmackusa