tags:

views:

134

answers:

4

i am trying to pass 2 values to a javascript xmlHttp request; THE values are being passed to the javascript function. i was successfully passing a single value to the javscript function, but now i need to pass 2 values. the bold values is a string name i want in the 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>";

one is a int and the other is a string

in the javascript, i am not sure how to receive these values. earlier i used to:

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

for a single value. but now since there are 2 values to process, i dont know how to write the function for it; i am currently (unsuccessfully) trying this:

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

Please tell me how to do it?

+1  A: 

In JavaScript, you don't need to declare variable types in parameter lists. So, your function would be:

function getVote(myInt, name) {

Make sure, though, when sending your value to the server, use myInt.toString() instead of just myInt, as you did with name.

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

This variables are all ready defined in your function once you get them as parameters.
My code will alert them to show you they are deined

Itay Moav
+1  A: 

You probably want to enclose the title in quotes. Let's say you have a row with aid 123 and title Hello World. You want to have `onclick="getVote(123,'Hello World')"

Yuliy
i was just reading the same on daniweb. thanks a lot. stackoverflow is a great resource.
amit
+1  A: 

If I understand correctly, your question is simply: how do javascript functions receive multiple arguments?

This is easy, just separate them by a comma in your function declaration, and pass multiple values, again separated by comma in the function call:

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

myFunc(1,2);

If you don't know in advance how many arguments to pass/receive, just declare the function without arguments, and use the built-in arguments array inside the function definition:

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

The approach above is nice if you need to pass a list of values that are all equal, but when you have to deal with multiple arguments and some of them are optional, a better approach is to pass an object literal, and add the 'arguments' as properties:

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

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