我整天都在用這個問題抨擊我的頭。我缺乏JavaScript的豐富知識,對於DOM操作,我開始使用jQuery。構建一些基本的東西很容易。我想要的是構建自定義函數,該函數將根據我傳遞給此函數的輸入參數從列表中填充表單,該表單將從數據庫中取出。Ajax自定義函數不能按預期工作
的代碼應該是這樣的:
(function($) {
$.fn.multiSelect = function(a,b,c) {
var someVar1 = parseInt(a,10);
var someVar2 = parseInt(b,10);
var someVar3 = c;
var dataString = "a=" + someVar1 + "&b=" + someVar2 + "&c=" + someVar3;
$.ajax({
type: "POST",
url: "test_ajax.php",
data: dataString,
dataType: 'json',
success: function(data) {
var a1 = data['a'];
var b1 = data['b'];
var c1 = data['c'];
return $(this).html('<p>' + a1 + b1 + c1 + '</p>');
}
});
return $(this).html('<p>' + someVar1 + someVar2 + someVar3 + '</p>');
}
};
}) (jQuery);
而且裏面test_ajax.php PHP代碼是:
<?php
if(isset($_POST['a']) AND !empty($_POST['a'])) {
$_something = array(
'a'=> $_POST['a'],
'b'=> $_POST['b'],
'c'=> $_POST['b']
);
echo json_encode($_something);
}
?>
現在,當我用我的jQuery的功能是這樣的:
$('#someDiv').multiSelect(1,1,'user');
函數在$。(ajax)方面,不會返回任何內容,也不會返回任何內容(我創建的只是爲了查看傳入函數的內容)r eturns「11user」。
如果我用上面這樣的代碼:
$(function() {
var dataString = 'a=' + 1 + '&b=' + 1 + '&c=user';
$.ajax({
type: "POST",
url: "test_ajax.php",
data: dataString,
dataType: 'json',
success: function(data) {
var a1 = data['a'];
var b1 = data['b'];
var c1 = data['c'];
$('#someDiv').html('<p>' + a1 + b1 + c1 + '</p>');
}
});
});
它從test_ajax.php腳本獲取數據。所有這些都很簡單,只是爲了解決問題,然後我將構建複雜的PHP腳本,它將完成數據庫的工作。
我猜我正在做一些錯誤的變量(本地/全局)或不正確的jQuery函數鏈接。
編輯:因爲我會在不同的菜單上多次重複這個操作,函數使更多的邏輯,然後重複整個代碼。
任何幫助,將不勝感激。
謝謝你們(有另一篇文章中有相同的答案),它的工作就像一個魅力; ) – user1410973