djdynamix Ответов: 0

Зачем добавлять еще один в <ввод> элемент моей в <форма&ГТ; разбить мое onChange события?


У меня есть форма, которая использует onChange= "function(event)" для передачи списка папок mp3-файлов в функцию Javascript из webkitdirectory, например:

<form>
<input type="file" value="Browser Folder" onChange="selectFolder(event)" webkitdirectory directory multiple>
</form>



Моя функция Javascript:

function selectFolder(e) {

	var theFiles = e.target.files;
	
	var fileList = "";
	
	for (var i=0, file; file=theFiles[i]; i++) {
		if ((file.name).substr((file.name).lastIndexOf('.')+ 1) === "mp3") {
			
			fileList = fileList+ String.fromCharCode(13)+(file.name).slice(0, -4);
		}
	}
	fileList = fileList.replace(/ - /g,";");
	fileList = "sep=;" + fileList;



затем он превращает список имен файлов в одну строку с разделителями точек с запятой, а затем я использую Ajax для передачи его в PHP, где он сохраняется на сервере в виде csv-файла, совместимого с Excel, например:

echo ($_POST['name']);
	$file = 'files.csv';
	file_put_contents($file,$_POST['name']);


Я хочу добавить поле ввода текста в свою форму, чтобы ввести уникальное имя для файла. csv, например:

<form>
<input type="text" name="csvName">
<input type="file" value="Browser Folder" onChange="selectFolder(event)" webkitdirectory directory multiple>
</form>


таким образом, я могу использовать его для именования файла .csv в PHP-коде, но всякий раз, когда я добавляю еще один элемент "input" в форму, он нарушает существующую функциональность кода, и csv-файл пуст, даже если я ничего больше не изменяю в коде.

Что я уже пробовал:

Замена onChange на onSubmit и добавление кнопки отправки (не идеально, но это было бы обходным решением, если бы оно сработало.)

Добавление дополнительной переменной в функцию и обработка csvName внутри функции.

0 Ответов