2014-05-15 9 views
0

Я действительно получил его для работы с использованием кода ниже. Спасибо всем, кто дал мне свои материалы, но должен сказать, что у меня были трудности с его работой. Надеюсь, это будет полезно для кого-то другого, кто является новым в javascript.Как передать переменные на другую страницу?

function SelectedRow() { 
      (function() { 
       if (window.addEventListener) { 
        window.addEventListener('load', run, false); 
       } else if (window.attachEvent) { 
        window.attachEvent('onload', run); 
       } 

       function run() { 
        var table = document.getElementById('alternativeCableTable'); 
        table.onclick = function (event) { 
         var target = event.target || event.srcElement; 
         while (target && target.nodeName != 'TR') { 
          target = target.parentElement; 
         }    
         var cells = target.cells;    
         if (!cells.length || target.parentNode.nodeName == 'THEAD') { 
          return; 
         } 
         var stockcode = document.getElementById('stockcode'); 
         var wiretype = document.getElementById('wiretype'); 
         var wirelength = document.getElementById('wirelength'); 
         var terminalA = document.getElementById('termA'); 
         var sealA = document.getElementById('sealA'); 
         var terminalB = document.getElementById('termB'); 
         var sealB = document.getElementById('sealB'); 
         stockcode.value = cells[0].innerHTML; 
         wiretype.value = cells[1].innerHTML; 
         wirelength.value = cells[2].innerHTML; 
         terminalA.value = cells[3].innerHTML; 
         sealA.value = cells[4].innerHTML; 
         terminalB.value = cells[5].innerHTML; 
         sealB.value = cells[6].innerHTML; 
         alert("The select data is sent to print page"); 
         window.open("http://10.19.13.67/ReworkLabels/PrintLabelPage.aspx?stockcode=" + decodeURIComponent(stockcode.value) + "&wiretype=" + decodeURIComponent(wiretype.value) + "&wirelength=" + decodeURIComponent(wirelength.value) 
         + "&terminalA=" + decodeURIComponent(terminalA.value) + "&sealA=" + decodeURIComponent(sealA.value) + "&terminalB=" + decodeURIComponent(terminalB.value) + "&sealB=" + decodeURIComponent(sealB.value),"_blank"); 

        }; 

       } 

      })(); 
     } 
+0

строка '+' 'оператор называет ToString)' метод (. Вам нужно получить какой-то способ получить значение из 'f1', которое вы действительно хотите отправить. –

+1

и я думаю, что они могут быть в основном 'cells [0] .innerHTML' –

+1

Вам нужно использовать' f1.value' вместо 'f1' и то же самое с' f2' – Satpal

ответ

1

Попробуйте

window.open("http://Testing/ReworkLabels/Default.aspx?"+f1.value+"&"+f2.value,"my window"); 

вместо этого.

+0

спасибо, что он работает, теперь у меня есть два текстовых поля в Default.aspx и мне нужно знать, как поместить f1.value в textbox1 и f2.value в textbox2? – billah77

+2

Что случилось с encodingURIкомпонентом? –

+0

Хорошая уловка Royi, спасибо. –

2

Используйте Локальное хранилище, вместо того, чтобы передавать параметры URL и/или файлы cookie, поскольку последние два имеют множество ограничений.

Смотрите пример того, как сделать это в http://www.webdesignerdepot.com/2013/04/how-to-use-local-storage-for-javascript/

Если вам нужны эти значения по какой-то причине на стороне сервера, то вы можете использовать JSON сериализации для передачи значений в качестве параметров POST. (Или просто HTML-формы со скрытыми входами, не забудьте поместить атрибуты имени в элементы формы html, которые должны быть отправлены на сервер.)

EDIT: Во втором чтении вашего вопроса, похоже, вам просто нужно 2 простые строковые значения. В этом случае проверьте значения свойств двух входных элементов. https://developer.mozilla.org/en/docs/Web/API/HTMLInputElement

Также вы можете указать имена этих параметров GET, например.

window.open("http://Testing/ReworkLabels/Default.aspx?f1="+encodeURIComponent(f1.value)+"&f2="+encodeURIComponent(f2.value),"my window"); 

См https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent для получения дополнительной информации о функции encodeURIComponent.

См. Retrieve GET variables from URL in ASPX, чтобы прочитать эти параметры на целевой странице ASP.NET.

Также убедитесь, что вы не распечатываете их значения напрямую (но правильно экранированы), чтобы избежать уязвимости межсайтового скриптинга (XSS).

См http://msdn.microsoft.com/en-us/library/ff649310.aspx и How do you avoid XSS vulnerabilities in ASP.Net (MVC)?

+0

спасибо за подсказку – billah77

+0

Я действительно получил его work.I отредактирую свой код – billah77

Смежные вопросы