开发者

Sending Multiple variables with Jquery ajax

General Overview

开发者_StackOverflow社区

Hi all, I have 4 spans in which values are inputted dynamically but for the purpose of this question i put in some values. I want to get the value from the spans, send them using ajax to a php file. If they meet the criteria set in the php file then the alert some message. This is what i have so far..

The HTML

This basically contains the span and some numbers within the span, the button below has an onclick event to call a JavaScript function called check.

 <span id="first" name="first">40</span>
      <span id="second" name="second">50</span>
      <span id="third" name="third">30</span>
      <span id="fourth" name="fourth">40</span></center>
      <input type="button" id="button" name="button" onClick="check()"/>

The JavaSript

This basically stores the value of each span field in a specified variable then tries to send these variable using ajax, then it alerts a message in retrieving a success message and same for a failed message.

 function check() {
      var    one = $('#first').val();
       var   two = $('#second').val();
       var  three = $('#third').val();
       var  four = $('#fourth').val();  

    $.post("test.php",{ data : "one"+"&two"+"&three"+"&four" } ,function(data)
        {

         if (data=="yay") //for no input
         { alert("yay");
         }
         else 
         {
         alert("nay");
         }

         }


        } 

The PHP These are the conditions the values in the span fields have to meet, the ajax function retrieves the success and failed messages from here.

  $one = $_POST["first"];
        $two = $_POST["second"];
         $three =$_POST["third"];
         $four = $_POST["fourth"];
         if($one > 5)        {

         echo "yay";
                           }
     elseif($two > 10 )        {

         echo "yay";  }

             elseif($three > 15 )        {

         echo "yay";  }

             elseif($four > 20 )        {

         echo "yay";  }

           else{
               echo "nay";
           }

The Problem

After a bit of debugging it doesn't seem that the php is getting any value which means the data hasn't been passed properly. I don't think that's the way to pass multiple items through ajax. Does anyone know how i can fix this? Many Thanks in adance..


The second argument of .post can be a map of parameters to send along with the request:

$.post("test.php", { 
    first: one,
    second: two,
    third: three,
    fourth: four
}, function(data) {
    //Done!
});

The keys of the map (e.g. first, second etc.) are the names with which you'll be able to access the values from your PHP script.


$.post ("test.php", { first: one, second: two, third: three: four } /*...*/);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜