przekazywanie danych formularza do innej strony HTML
Mam dwie strony HTML: formularz.html i wyświetlacz.html. W formie.html, istnieje forma:
<form action="display.html">
<input type="text" name="serialNumber" />
<input type="submit" value="Submit" />
</form>
Dane formularza są wysyłane do wyświetlenia.html. Chcę wyświetlić i użyć danych formularza serialNumber
w wyświetlaczu.html, jak pokazano poniżej:
<body>
<div id="write">
<p>The serial number is: </p>
</div>
<script>
function show() {
document.getElementById("write").innerHTML = serialNumber;
}
</script>
</body>
Więc jak mogę przekazać zmienną {[2] } z formularza.html do wyświetlenia.html tak, aby powyższy kod był wyświetlany.html pokaże numer seryjny, a funkcja JavaScript show () otrzyma serialNumber
z pierwszego HTML?
6 answers
Jeśli nie masz możliwości użycia programowania po stronie serwera, takiego jak PHP, możesz użyć ciągu zapytania lub parametrów GET.
W formularzu Dodaj atrybut method="GET"
:
<form action="display.html" method="GET">
<input type="text" name="serialNumber" />
<input type="submit" value="Submit" />
</form>
Po przesłaniu tego formularza, użytkownik zostanie przekierowany na adres, który zawiera wartość serialNumber
jako parametr. Coś w stylu:
http://www.example.com/display.html?serialNumber=XYZ
Powinieneś być w stanie przetworzyć łańcuch zapytania - który będzie zawierał wartość parametru serialNumber
- z JavaScript, używając window.location.search
wartość:
// from display.html
document.getElementById("write").innerHTML = window.location.search; // you will have to parse
// the query string to extract the
// parameter you need
Zobacz także Łańcuch zapytań JavaScript .
Alternatywą jest zapisywanie wartości w plikach cookie podczas przesyłania formularza i odczytywanie ich z plików cookie ponownie po załadowaniu strony display.html
.
Zobacz także Jak użyć JavaScript, aby wypełnić formularz na innej stronie .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:01
Potrzebujesz get wartości z ciągu zapytania (ponieważ nie masz ustawionej metody, domyślnie używasz GET)
Użyj poniższego samouczka.
Http://papermashup.com/read-url-get-variables-withjavascript/
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-04 19:20:57
Użyj metody "Get", aby wysłać wartość określonego pola przez przeglądarkę:
<form action="display.html" method="GET">
<input type="text" name="serialNumber" />
<input type="submit" value="Submit" />
</form>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-28 05:03:58
Jeśli Twoja sytuacja jest opisana; Musisz wysłać akcję na inny serwelet z jednego formularza i masz dwa przyciski submit i chcesz wysłać każdy przycisk submit na różne strony, wtedy najprostsza odpowiedź jest tutaj.
Do wysyłania danych do dwóch serwletów wykonaj jeden przycisk jako submit, a drugi jako przycisk.Na pierwszym przycisku Wyślij akcję w znaczniku formularza jak zwykle, ale na drugim przycisku wywołaj funkcję JavaScript tutaj musisz przesłać formularz z tym samym polem, ale aby różne serwelety następnie napisz inny znacznik formularza po pierwszym zamknięciu.zadeklaruj tam te same pola tekstowe, ale z ukrytym atrybutem.teraz, gdy wstawiasz dane do pierwszej formy, a następnie wstawiasz je do innej ukrytej formy za pomocą kodu javascript.Napisz jedną funkcję dla drugiego przycisku, który przesyła drugi formularz. Następnie po kliknięciu przycisku submit wykona akcję w pierwszym formularzu, po kliknięciu przycisku wywoła funkcję przesłania drugiego formularza ze swoją akcją. Teraz twój drugi formularz zostanie wezwany do drugi servlet.
Tutaj możesz wywołać dwa serwele z tej samej strony html lub jsp z mieszanym kodem javascript
An przykład drugiej ukrytej formy
<form class="form-horizontal" method="post" action="IPDBILLING" id="MyForm" role="form">
<input type="hidden" class="form-control" name="admno" id="ipdId" value="">
</form>
<script type="text/javascript">
function Print() {
document.getElementById("MyForm").submit();
}
</script>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-08 18:53:51
*first html page*
<form action="display.jsp" >
<input type="text" name="serialNumber" />
<input type="submit" value="Submit" />
</form>
*Second html page*
<body>
<p>The serial number is:<%=request.getParameter("serialNumber") %></p>
</body>
you will get the value of the textbox on another page.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-20 07:23:50
<form action="display.html" method="post">
<input type="text" name="serialNumber" />
<input type="submit" value="Submit" />
</form>
W wyświetlaczu.html należy dodać następujący kod.
<script>
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
var sn = getParameterByName('serialNumber');
document.getElementById("write").innerHTML = sn;
</script>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-01 12:46:13