PDA

View Full Version : Javascript để truyền tham số giữa 2 form



herozz
23-11-2007, 15:10
Mình tạo ra 2 file html như sau :

- File Demo.html:

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function chk(){window.open("Demo2.html","Giang");}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<INPUT type="submit" name="btn" value="Get" onclick="chk();" >
<select name="giang"></select>
</FORM></BODY></HTML>

- File Demo2.html
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function save() {
var newoption = new Option("None",0);
window.opener.document.forms['form'].elements['giang'].options[0] = newoption;
window.close();
}
-->
</SCRIPT>
</HEAD>
<BODY>
<FORM>

<INPUT type="submit" name="btn2" value="Send" onClick="save();">


</FORM></BODY></HTML>

Khi mình nhất nút Get trên file Demo.html thì có hiện ra file Demo2.html. Tuy nhiên khi nhấn nút Send trên file Demo2.html thì không thấy gì cả, trong khi mình muốn truyền dữ liệu cho ô select của file Demo.html. Các bạn giúp mình với !

hackson
24-11-2007, 11:51
Bạn có 2 chổ sai:
- ở demo.html <FORM> chưa đặt tên,
- bạn không thể set giá trị trực tiếp cho trang demo từ trang demo2 được, mà ở trang demo bạn cần tạo một hàm set giá trị cho select box sau đó từ trang demo2 bạn gọi hàm này.
dòng này "document.forms['form'].elements['giang'].options[0] = newoption;" hình như sai sai. -> "document.forms['form'].giang.options[0] = newoption;"
- Nếu các button không nhằm vào mục đích submit thì nến gán type=button để khỏi bị refresh trang.
Viết lại như thế này xem thử sao:


file: demo.html

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">

function chk(){window.open("demo2.html","Giang");}

function save(text,value)
{
var newoption = new Option(text,value);

window.document.forms['form'].giang.options[0] = newoption;

}

</SCRIPT>
</HEAD>
<BODY>
<FORM name="form">
<INPUT type="button" name="forms" value="Get" onclick="chk();" >
<select name="giang"></select>
</FORM></BODY></HTML>

file demo2.html

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">

function save(text,value){

window.opener.save(text,value);
window.close();
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>

<INPUT type="button" name="btn2" value="Send" onClick="save('love','you');">


</FORM></BODY></HTML>

conan1212
25-11-2007, 22:44
Ai bảo là không đc, nhưng phải dùng Frame, cò không thì dùng ajax để handle, còn cách nữa là truyền biến vào url rồi dùng javascript tách dữ liệu ra. Còn cách làm thế nào thì search trên google. Không thì đọc ebook, tự làm mọi thứ bao giờ cũng tốt hơn. Đây đang bị xì trét hok code cho đc, thông cảm.

hackson
28-11-2007, 13:15
Ai bảo là không đc, nhưng phải dùng Frame, cò không thì dùng ajax để handle, còn cách nữa là truyền biến vào url rồi dùng javascript tách dữ liệu ra. Còn cách làm thế nào thì search trên google. Không thì đọc ebook, tự làm mọi thứ bao giờ cũng tốt hơn. Đây đang bị xì trét hok code cho đc, thông cảm.
Chính xác thì new window xài không được, frame hay ajax làm gì cho nó thêm rắc rối vấn đề, hỏi gì thì trả lời cái đó.