Przepraszam za opóźnienie z odpowiedzą, nie będę ściemniać - jakoś mi ten temat wyleciał z głowy, ale mam nadzieję, że jest jeszcze aktualny ;)
Ponieważ wcześniej ustaliliśmy, że wysłanie potrzebnych danych w postaci pola hidden
nie przejdzie, więc jedną opcją (bez zmieniania ustawień z "drugiej strony", czyli na serwerze, który odbiera wysyłane dane) jest przesłanie tego, co chcesz jako plik.
Z tego co pisałeś wcześniej zrozumiałem, że możesz wpisać sobie "na sztywno" treść do przesłania jako value
pola <input type="file"..."
i wtedy Ci to działa, ale niemożliwe jest zmienienie tej wartości z poziomu JS. Podałem kilka postów wyżej, że rozwiązaniem jest modyfikacja DOM, na co odpisałeś że nie umiesz, a jak próbujesz to otrzymujesz błąd.
Przed chwilą przysiadłem i zrobiłem na szybko skrypt w JS, który wykonuje to, o czym pisałem. Niestety - nie można bezpośrednio z poziomu JS modyfikować treści value
, ale przecież można to obejść: wywalić istniejącego <input type="file"...
, a w jego miejsce wstawić nowego, z potrzebną treścią. Sprawdziłem i u mnie poniższy skrypt działa tak, jak powinien.
Tylko taka mała uwaga odnośnie sprawdzania, co takiego i jak on robi - po pokazaniu źródła strony (Ctrl+U), będziesz widział jedynie to, co zostało przesłane do przeglądarki bezpośrednio podczas ładowania pliku HTML, jakiekolwiek zmiany w DOM nie będą tam widoczne. Żeby zobaczyć aktualny (po uwzględnieniu zmian) stan DOM, musisz albo skorzystać z dodatkowych pluginów, albo narzędzi dla developerów dostarczonych z przeglądarką. W przypadku Firefox'a masz kombinację Ctrl+Shift+C
(albo menu -> dla twórców witryn -> inspektor). Po jego odpaleniu, na dole okna z przeglądarką będziesz miał aktualną postać strony. Możesz zobaczyć, że wciśnięcie przycisku "zmien" powoduje zmiany. Testowo wkleiłem też "duży" tekst, który zamieściłeś kilka postów wyżej i on także został popranie wstawiony, więc wydaje mi się, że masz to, co chciałeś :)
Sam skrypt jest napisany szybko i brzydko, jedynie chodziło mi o pokazanie sposobu, jak masz się zabrać za temat. Mimo tego jestem przekonany, że zrozumiesz zasadę i dasz sobie radę przerobić skrypt do swoich potrzeb. W razie jakichkolwiek problemów pisz, postaram się pomóc :)
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script>
function zmien() {
var skasuj = document.querySelector('#plikpole');
var rodzic = skasuj.parentNode;
rodzic.removeChild(skasuj);
var tresc = "nowa tresc";
var nowy = document.createElement("input");
nowy.setAttribute("type", "file");
nowy.setAttribute("value", tresc);
rodzic.appendChild(nowy);
}
</script>
<input type='submit' value='zmien' onclick="zmien()">
<form id='myForm' method="post" enctype="multipart/form-data">
<input type="file" id="plikpole" name="fileField" value="AAAAAAAAAAAAAA"><br/><br/>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>