2015-04-29 12 views
6

Mam stronę php, który zawiera ten fragment kodu:wartość Texbox w okienko pozostaje zerowy

echo '<div id="popup" style="display:none">'; 
echo '<form id="AddForm" name="AddForm" method="get">'; 
echo '<table><tr>'; 
echo '<td>Software Name: </td><td><input type="text" id="SoftwareName"/></td></tr>'; 
echo '<tr><td>Software Type:</td><td><input type="text" id="SoftwareType"/></td></tr>'; 
echo '<tr><td>License Method:</td><td><input type="text" id="LicenseMethod"/></td></tr>'; 
echo '<tr><td><input type="button" value="Add" OnClick="opener.GetAddData();"></td><td></td>'; 
echo '</tr></table>'; 
echo '</form>'; 
echo '</div>'; 

Buttan że nazywa CreatePopup():

echo "<input type='submit' value='Add' OnClick='CreatePopup();'/>"; 

jestem otwierając ten dział jako wyskakujące okienko za pomocą następującego kodu:

function CreatePopup() 
{ 
     var w = null; 
     w = window.open('index.php?List=SoftwareLicenseAllocations', 'test', 'height=125,width=300'); 
     w.document.write($("#popup").html()); 
     w.document.close(); 
} 

Kod z polem tekstowym wartości z popup:

function GetAddData() 
{ 
    var SoftwareName = document.getElementById('SoftwareName').value;//.getElementById('SoftwareName').value; 
    var SoftwareType = document.getElementById('SoftwareType').value; 
    var LicenseMethod =document.getElementById('LicenseMethod').value;   

    alert(SoftwareName, SoftwareType, LicenseMethod);  

    AddNew(SoftwareName,SoftwareType,LicenseMethod); 

} 

Screenshot:

POPUP

Ilekroć zadzwonić GetAddData() i wstawianie tekstu w oknie podręcznym i kliknij przycisk, wartości pozostają puste.

Dlaczego tak się dzieje? Jak mogę uzyskać wartości pola tekstowego?

Używam PHP Pear i zmodyfikowanej wersji OpenIT (i starego CMS zarządzania aktywami).

Odpowiedz

1

do Jeśli rozumiem co próbujesz zrobić poprawnie. .. Być może to?

Zmiana ta linia (tylko dodaje okno):

echo '<tr><td><input type="button" value="Add" OnClick="opener.GetAddData(window);"></td><td></td>'; 

i dodać parametr okna do GetAddData funkcję:

function GetAddData(window) 
{ 
    var popupDoc = window.document; 
    var SoftwareName = popupDoc.getElementById('SoftwareName').value;//.getElementById('SoftwareName').value; 
    var SoftwareType = popupDoc.getElementById('SoftwareType').value; 
    var LicenseMethod = popupDoc.getElementById('LicenseMethod').value;   

    alert(SoftwareName, SoftwareType, LicenseMethod);  

    AddNew(SoftwareName,SoftwareType,LicenseMethod); 
} 

Po wywołaniu opener.GetAddData w popup, Metody DOM szukają w dokumencie opener, a nie w wyskakującym okienku. Musisz przekazać obiekt wyskakującego o wartości window do tej funkcji, aby wiedział, że powinien szukać wejść w wyskakującym okienku o wartości document.

+0

To działa, ale otrzymuje tylko pierwszą wartość (SoftwareName), a nie wszystkie. – Brian

+1

nevermind, używany, zamiast +! :) Dzięki – Brian

+0

W porządku, nie problemo! –

0

Myślę, że forma jest złożenie przez ten kod

echo "<input type='submit' value='Add' OnClick='CreatePopup();'/>"; 

try konwersja typu „Wyślij” „przycisk”

echo "<input type='button' value='Add' OnClick='CreatePopup();'/>"; 
+0

Próbowałem już wcześniej, nadal ten sam problem. – Brian

Powiązane problemy