我的代碼有一個小問題。我發送一個POST請求到我的頁面,完成後它應該返回「OK」,這意味着它的工作。從我的處理函數中調用set_var(data)來設置我的全局變量文本,但問題是我的print_info()返回undefined。
我在這方面花了很多時間,並意識到我的問題與某些方面的範圍有關,但我不知道如何去修復它。如果任何人都可以提供任何指針,那會很棒。
<?
if($_REQUEST['action'] == 'test')
{
echo "OK";
die;
}
?>
<script type="text/javascript" src="jquery-1.6.1.js" ></script>
<script type="text/javascript">
var ajax_post_result;
function set_var(data)
{
//PRINTS MY TEXT OK
alert("SET:: " + data);
//SET TO MY GLOBAL VARIABLE
ajax_post_result = data;
//ALSO PRINTS OK
alert("SET2:: " + ajax_post_result);
}
function return_handler(data, textStatus)
{
//THESE BOTH WORK ... BUT ONLY HERE AND WITHIN set_var()
//alert("1: " + data); //PRINTS WHAT I NEED
//CALL FUNCTION TO SET GLOBAL VARIABLE
set_var(data);
}
function print_info()
{
return ajax_post_result;
}
function ajax_post(file, data)
{
$.post(file, data, return_handler);
//PRINTS UNDEFINED
alert("RETURN:: " + print_info());
}
</script>
<form id=newform name='testform'>
<input type="hidden" name="newexample" value="1">
Enter Something: <input name="something" id='something1' value="" type="text">
<input type="button" value="Submit" name="Submit" onclick="ajax_post('index.php?action=test', $('#newform').serialize()); return false;">
</form>
謝謝,我轉向使用$ .ajax,現在一切正常。 – user591162 2011-06-03 04:03:10