Нажмите на Якорный тег в модальном поле и отправьте ссылку на ссылку AJAX - PullRequest
0 голосов
/ 10 марта 2020

Уважаемое сообщество,

Я работаю над задачей, которая требует, чтобы, когда пользователь нажимает кнопку загрузки в поле Dropzone, должен появиться модальный ящик, спрашивающий пользователя, где сохранить загружаемые файлы на localhost. , Модальное окно показывает список уже существующих каталогов на определенном диске и предоставляет возможность создать новую папку при желании. При нажатии на кнопку «Создать новую папку» из модального ящика 1 открывается еще один модальный ящик, в котором пользователю предлагается ввести имя папки, которое отправляется через AJAX на страницу php, которая создает пользовательскую папку в каталоге.

Проблема, с которой я сталкиваюсь, заключается в том, что, щелкнув имя папки из списка уже существующих папок в Модальном окне 1, выбранное имя папки должно быть отправлено через AJAX на другую страницу php, откуда дропзона может знать, куда загрузить файлы. Любая помощь будет высоко оценена.

Спасибо ...

Вот мой код, который берет имя пользователя у пользователя и создает папку в каталоге:

$foldername = $_REQUEST['foldername'];
$structure = dirname(__FILE__) . DIRECTORY_SEPARATOR . $foldername;
if(!file_exists($structure)){
  if(mkdir($structure, 0777, true)) {
    die('Success');
  }else {
    die("Folder `{$structure}` failed to be created");
  }
}

Вот код для загрузки файлов dropzone в пользовательскую папку (которая в данный момент не работает):

$ds = DIRECTORY_SEPARATOR;
$storeFolder = 'uploads/'; // "$_POST['variable']" is the folder where files will be uploaded  
if (!empty($_FILES)) {
    $tempFile = $_FILES['file']['tmp_name'];          
    $targetPath = dirname( __FILE__ ) . $ds . $storeFolder . $ds;         
    $targetFile =  $targetPath . $_FILES['file']['name'];     
    move_uploaded_file($tempFile, $targetFile);         
}

Вот код JavaScript что я использую для выполнения задач:

$( function() {
var dialog, dialogMain, form;
var name = $("input[name=name]");
var path = $("input[name=path]");
var allFields = $( [] ).add( name ).add( path );

function addFolder() {
  var valid = true;
  allFields.removeClass( "ui-state-error" );
  if (valid) {
    $( "#users tbody" ).append( "<tr>" +
      "<td>" + "<a href='#'>" + name.val() + "</a>" + "</td>" +
      "<td>" + path.val() + "</td>" +
    "</tr>" );
    dialog.dialog( "close" );
  }
  return valid;
}

dialog = $( "#dialog-form" ).dialog( {
  autoOpen: false,
  height: 350,
  width: 350,
  modal: true,
  buttons: {
    "Create a Folder" : {
        text: "Create a Folder",
        id: "indlg",
        click: addFolder 
    },
    Cancel: function() {
      dialog.dialog( "close" );
    }
  },
  close: function() {
    form[ 0 ].reset();
    allFields.removeClass( "ui-state-error" );
  }
});

dialogMain = $( "#main-dialog" ).dialog( {
  autoOpen: false,
  height: 300,
  width: 390,
  modal: true,
  buttons: {
    Cancel: function() {
        dialogMain.dialog( "close" );
    }
  }
});

form = dialog.find( "form" ).on( "submit", function( event ) {
  event.preventDefault();
  addFolder();
});

$( "#createFolder" ).button().on( "click", function() {
  dialog.dialog( "open" );
});

$( "#upload" ).button().on( "click", function() {
  dialogMain.dialog( "open" );
});

$('#indlg').click(function() {
    $.ajax({
      url: 'create.php',
      type: 'POST',
      data: { foldername : name.val() },
      success: function(output) {
        alert(output);
      }
    });
});

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...