2009-12-20 14 views
8

Estoy tratando de pasar 2 valores a una solicitud javascript xmlHttp; Los valores se pasan a la función javascript. Estaba pasando con éxito un solo valor a la función de javscript, pero ahora necesito pasar 2 valores. los valores en negrita es un nombre de cadena que quiero en el javascript.pase 2 valores a una función de 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>"; 

uno es un int y el otro es una cadena

en el Javascript, no estoy seguro de cómo recibir estos valores. anteriormente solía:

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

por un único valor. pero ahora, dado que hay 2 valores para procesar, no sé cómo escribir la función para ello; estoy actualmente (sin éxito) tratando esto:

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

Por favor, dime cómo hacerlo?

+0

no yo no quiero enviarlo al servidor. solo lo necesito en el archivo javascript. publicación actualizada – amit

Respuesta

8

Es probable que desee adjuntar el título entre comillas. Supongamos que tiene una fila con aid y título Hello World. Desea tener onclick="getVote(123,'Hello World')"

+0

solo estaba leyendo lo mismo en daniweb. muchas gracias. stackoverflow es un gran recurso. – amit

1

En JavaScript, no necesita declarar tipos de variables en las listas de parámetros. Por lo tanto, su función sería:

function getVote(myInt, name) { 

asegurarse, por tanto, al enviar su valor al servidor, utilice myInt.toString() en lugar de sólo myInt, como lo hizo con name.

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

Todas estas variables están definidas en su función una vez que las obtiene como parámetros.
Mi código les alertará para mostrar que están deinidos

14

Si entiendo correctamente, su pregunta es sencilla: ¿cómo las funciones de Javascript reciben múltiples argumentos?

Esto es fácil, sólo los separan por una coma en su declaración de la función, y varios valores, separados por comas de nuevo en la llamada de función:

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

myFunc(1,2); 

Si no sabe de antemano cuántos argumentos para transmitir/recibir, simplemente declarar la función sin argumentos, y el uso de la matriz de argumentos incorporados dentro de la definición de función:

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

el enfoque anterior es agradable si tiene que pasar una lista de valores que son todos igual, pero cuando tienes que lidiar con multipl e argumentos y algunos de ellos son opcionales, un mejor enfoque es pasar un objeto literal, y añadir los 'argumentos' como propiedades:

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

myFunc({ 
    arg1: "one" 
, arg2: "two" 
, ...more properties... 
}); 
Cuestiones relacionadas