用jquery / ajax发布数据

I am trying to retrieve data from my form when I post(submit) the data. But I have some ignorance about ajax with jquery.

Today, my code looks like this:

$(function() {
    $(".apply_up").submit(function(e){    
        $.post("controller/ajax.php", function(data) {
            alert("Data Loaded: " + data);
        }); 
    });
});

And here's my HTML:

<form name="Apply" class="apply_up" method="Post">
    <input type="image" src="img/t_up.png" id="ajax" name="t_up" value="1 ">
</form>

I want to pick up value = "1"

You need to access the value and then pass it through:

$(".apply_up").submit(function(e){    
    var the_val = $('#ajax').val();
    $.post("controller/ajax.php", { 'value': the_val }, function(data) {
        alert("Data Loaded: " + data);
    }); 
});

and use serialize().. if you have lots of fields in your form

html

<form name="Apply" id="apply" class="apply_up" method="Post">
...

jquery

$(".apply_up").submit(function(e){    
   $.post("controller/ajax.php",$(this).serialize(), function(data) {
   ...

  //OR
    $.post("controller/ajax.php",$("#apply").serialize(), function(data) {
        alert("Data Loaded: " + data);
    }); 
});

Proper solution for most forms:

HTML

<form action="controller/ajax.php" name="Apply" class="apply_up" method="Post">
    <input type="image" src="img/t_up.png" id="ajax" name="t_up" value="1 ">
</form>

JS

$(".apply_up").on('submit', function(e){
    e.preventDefault();

    var formAction = this.action,
        formData = $(this).serialize();

    $.post(formAction, formData, function(data) {
       alert("Data Loaded: " + data);
    }); 
});

Try like this one:

 $(".apply_up").submit(function(e){  
    e.preventDefault();
    var imgVal = $('#ajax').val();  
    $.post("controller/ajax.php", {value : imgVal}, function(data) {
        alert("Data Loaded: " + data.value);
    }, "json"); 
});