2013-03-25 154 views
0

我試圖從我的表單中檢索數據,當我發佈(提交)數據時。但我對jQuery有一些無知。用jquery/ajax發佈數據

今天,我的代碼看起來是這樣的:

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

這是我的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> 

我想拿起值= 「1」

+0

只需使用普通的jQuery選擇像'$( 「#AJAX」)ATTR( 「值」) ' – 23tux 2013-03-25 10:54:32

+0

對於'value',最好使用'val()'。另外,爲了代碼的長久性,最好使用'prop()'。 – BenM 2013-03-25 10:55:00

+0

回答代碼plz :) – 2013-03-25 10:57:29

回答

1

您需要訪問值,然後通過它:

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

#ajax是什麼id? – 2013-03-25 10:59:04

+1

'input'元素... – BenM 2013-03-25 10:59:24

0

和使用序列化()..如果你有很多領域表單中的

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); 
    }); 
}); 
+0

我可能會試圖推薦'$(this).serialize()'來處理OP的情況。 – BenM 2013-03-25 11:01:03

+0

yup ... :) ..更新... – bipen 2013-03-25 11:02:02

0

對於大多數形式的妥善解決:

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); 
    }); 
}); 
+0

不一定。 POST請求具有最大大小,並且從長遠來看發送多餘數據可能是昂貴的。 – BenM 2013-03-25 11:01:51

+0

這是我的回答或OP已刪除的評論的問題嗎? – Simon 2013-03-25 11:19:22

+0

這是OP的評論,他被刪除。對困惑感到抱歉。 – BenM 2013-03-25 11:20:54

1

嘗試像這樣的:

$(".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"); 
}); 
+0

這與我的回答有什麼不同? – BenM 2013-03-25 11:02:51

+1

不是很多,但你錯過了我想停止表單提交。 – Jai 2013-03-25 11:03:47

+0

OP沒有包含它,所以你不知道它是必需的;) – BenM 2013-03-25 11:04:26