Perché non posso trasferire i dati su un’altra pagina HTML

Sono pienamente consapevole del fatto che ci sono dozzine di domande che vanno avanti, ma ho sentito che il mio scenario era un po ‘diverso (fino a te per decidere), Sto cercando di trasferire i dati di un modulo da 1 HTML (test.html) a un altro HTML (https://stackoverflow.com/questions/51468963/why-cant-i-transfer-data-to-another-html-page/tut1.html)

Fondamentalmente quello che sto cercando di fare è estrarre i dati e mostrare in un altro modal.Il problema che ho trovato è che sono riuscito a fare la stessa cosa in una sessione di test, ma per qualche motivo quando l’ho aggiunto a quello principale non lo faceva lavoro. Sono sicuro di aver perso qualcosa di piccolo ma non riesco a inserirlo. Qualsiasi aiuto per risolvere questo problema sarebbe di grande aiuto. (Una cosa che puoi prendere nota è che nell’esecuzione del test ho usato un pulsante per inviare, ma qui invece sto usando un href. Non è sicuro se questo è ciò che sta causando questo. ho notato che la pagina è stata reindirizzata alla seconda pagina a causa del collegamento di href e non a causa dell’azione del modulo)

HTML 1 contiene il modulo. Dove l’utente inserisce il suo input.

      function testJS() { var b = document.getElementById('Name').value, document.getElementById('comment').value, url = 'http://E:\IIT\Homework\web1t/https://stackoverflow.com/questions/51468963/why-cant-i-transfer-data-to-another-html-page/tut1.html?Name=' + encodeURIComponent(b); document.location.href = url; }   

HTML 2 (https://stackoverflow.com/questions/51468963/why-cant-i-transfer-data-to-another-html-page/tut1.html) contiene una modale che ho creato (non incluso il css per facilità)

    window.onload = function () { var url = document.location.href, params = url.split('?')[1].split('&'), data = {}, tmp; for (var i = 0, l = params.length; i < l; i++) { tmp = params[i].split('='); data[tmp[0]] = tmp[1]; } document.getElementById('username').innerHTML = data.N; document.getElementById('usercomment').innerHTML = data.C; }   

PS: ho usato gli esatti 2 codici per riempire un altro modulo ma era estremamente semplice e ha funzionato perfettamente non so perché non funziona qui. qualsiasi aiuto di qualsiasi tipo sarebbe di grande aiuto

Dovrebbe esserci un output di errore dal tuo codice, ma in qualche modo non usi lo strumento di debug. Penso che questa sia una buona opportunità per te …

Innanzitutto, per favore cambia “tag href”, come “# https://stackoverflow.com/questions/51468963/why-cant-i-transfer-data-to-another-html-page/tut1.html“, quindi fai clic su di esso, penso che non passi a https://stackoverflow.com/questions/51468963/why-cant-i-transfer-data-to-another-html-page/tut1.html. Inoltre, quando passi a “https://stackoverflow.com/questions/51468963/why-cant-i-transfer-data-to-another-html-page/tut1.html”, l’url è lo stesso di quello che vuoi?

Proviamo questo.

 ' 

anche https://stackoverflow.com/questions/51468963/why-cant-i-transfer-data-to-another-html-page/tut1.html deve essere aggiornato.

 window.onload = function () { var url = document.location.href, params = url.split('?')[1].split('&'), data = {}, tmp; for (var i = 0, l = params.length; i < l; i++) { tmp = params[i].split('='); data[tmp[0]] = tmp[1]; } // the name is wrong; you set name Name and Comment, when you create the url. document.getElementById('username').innerHTML = data.Name; document.getElementById('usercomment').innerHTML = data.Comment; } 

Per tua informazione. L'azione della prima pagina è la stessa che usi semplicemente

 
+

In tal caso, i parametri inviano usando il suo nome e il suo valore. (? N = xxxx & C = yyyy) Non hai bisogno di creare url compresi i parametri, a meno che non ci sia un motivo speciale.

Basta aggiungere una preventDefault nella funzione testJS in questo modo

 function testJS(e) { e.preventDefault(); var b = document.getElementById('Name').value, document.getElementById('comment').value, url = 'http://E:\IIT\Homework\web1t/https://stackoverflow.com/questions/51468963/why-cant-i-transfer-data-to-another-html-page/tut1.html?Name=' + encodeURIComponent(b); document.location.href = url; } 

Poiché stai impostando manualmente l’url, devi impedire il comportamento predefinito del tag.