2009-12-20 43 views
8

tôi đang cố gắng chuyển 2 giá trị cho yêu cầu xmlHttp javascript; Các giá trị đang được chuyển đến hàm javascript. tôi đã chuyển thành công một giá trị cho hàm javscript, nhưng bây giờ tôi cần phải chuyển 2 giá trị. các giá trị in đậm là một tên chuỗi tôi muốn trong javascript.chuyển 2 giá trị cho hàm javascript

echo "<a href='#' class='thumb'><img class='thumb-img' value = ".$row->aid." onclick='getVote(".$row->aid.", **".$row->atitle."**)' src='images/roadies/th".$row->aid.".jpg' /> </a>"; 

một là một int và người kia là một chuỗi

trong javascript, tôi không chắc chắn làm thế nào để nhận được những giá trị này. trước đó tôi đã từng sử dụng:

function getVote(int) 
{ 
    xmlhttp=GetXmlHttpObject(); 
    if (xmlhttp==null) 
    { 
     alert ("Browser does not support HTTP Request"); 
     return; 
    } 
    value = int; 

cho một giá trị duy nhất. nhưng bây giờ vì có 2 giá trị để xử lý, tôi không biết cách viết hàm cho nó; Tôi hiện đang (không thành công) đang thử cách này:

function getVote(int, name) 
{ 
    xmlhttp=GetXmlHttpObject(); 
    if (xmlhttp==null) 
    { 
     alert ("Browser does not support HTTP Request"); 
     return; 
    } 
    value = int; 
    name= char; 

Vui lòng cho tôi biết cách thực hiện?

+0

không, tôi không muốn gửi nó đến máy chủ. tôi chỉ cần nó trong tập tin javascript. bài cập nhật. – amit

Trả lời

8

Bạn có thể muốn kèm theo tiêu đề trong dấu ngoặc kép. Giả sử bạn có một hàng với aid và tiêu đề Xin chào thế giới. Bạn muốn có onclick="getVote(123,'Hello World')"

+0

tôi chỉ đọc trên daniweb. cảm ơn rất nhiều. stackoverflow là một nguồn tài nguyên tuyệt vời. – amit

1

Trong JavaScript, bạn không cần khai báo các loại biến trong danh sách tham số. Vì vậy, chức năng của bạn sẽ là:

function getVote(myInt, name) { 

Hãy chắc chắn, tuy nhiên, khi gửi giá trị của bạn đến máy chủ, sử dụng myInt.toString() thay vì chỉ myInt, như bạn đã làm với name.

1
function getVote(int, name) 
{ 
    xmlhttp=GetXmlHttpObject(); 
    if (xmlhttp==null) 
    { 
     alert ("Browser does not support HTTP Request"); 
     return; 
    } 
    alert(int); 
    alert(name); 
} 

Biến này tất cả đã sẵn sàng được xác định trong hàm của bạn khi bạn nhận chúng làm tham số.
Mã của tôi sẽ thông báo cho họ biết bạn được cho là

14

Nếu tôi hiểu chính xác, câu hỏi của bạn đơn giản là: các hàm javascript nhận được nhiều đối số như thế nào?

này rất dễ dàng, chỉ cần tách chúng bằng dấu phẩy trong khai báo hàm của bạn, và vượt qua nhiều giá trị, một lần nữa ngăn cách bởi dấu phẩy trong các cuộc gọi chức năng:

function myFunc(one, two) { 
    alert(one); alert(two); 
} 

myFunc(1,2); 

Nếu bạn không biết trước có bao nhiêu đối số để truyền/nhận, chỉ cần khai báo hàm không có đối số, và sử dụng các mảng đối số tích hợp bên trong định nghĩa hàm:

function myFunc(){ 
    for (var i=0, numArgs = arguments.length; i<numArgs; i++){ 
     alert(arguments[i]); 
    } 
} 

cách tiếp cận trên là tốt đẹp nếu bạn cần phải vượt qua một danh sách các giá trị mà là tất cả bằng nhau, nhưng khi bạn phải đối phó với nhiều e đối số và một số trong số đó là tùy chọn, cách tiếp cận tốt hơn là chuyển một đối tượng theo nghĩa đen và thêm 'đối số' làm thuộc tính:

function myFunc(obj){ 
    if (typeof(obj.arg1)!="undefined") { 
     .... 
    } 
    if (typeof(obj.arg2)!="undefined") { 
     .... 
    } 
    ...more handling... 
} 

myFunc({ 
    arg1: "one" 
, arg2: "two" 
, ...more properties... 
}); 
Các vấn đề liên quan