2013-06-20 44 views
4

任何人都可以請指出我到底做了什麼錯誤,我想在選定的值更改時進行PHP調用。AJAX不調用PHP?

該代碼沒有回顯來自php文件的信息。

jQuery代碼

// Skill sort on change 
$('#order_by').on('change', function() { 
    $.ajax({ 
     type: "POST", 
     url: "sort_skill_be.php", 
     data: {skill:this.value} 
    }).done(function(result){ 
     console.log(result) 
    }) 
}); 

PHP代碼

<?php 
session_start(); 

$skill_sort = $_POST['skill']; 
echo $skill_sort; 
echo 'I got in here'; 


?> 

感謝您的幫助和時間!

編輯︰它現在正常工作,感謝所有的幫助!

+1

您是否使用過任何調試程序?螢火蟲? Chromes開發人員工具?診斷任何Javascript/jquery錯誤? –

+0

你的'.done'函數沒有任何內容,所以即使你的腳本完美運行,你也不會看到它做任何事情。在'done'處理程序中嘗試'console.log(result)'。 –

+0

給出的代碼很好。問題在於你沒有引用的東西。 –

回答

4

試試這個:

$('#order_by').on('change', function() { 
    var sk = $(this).val(); 
    $.ajax({ 
     type: "POST", 
     url: "sort_skill_be.php", 
     data: 'skill=' + sk, 
     success: function(result) { 
      alert(result); 
     } 
    }); 
}); 
+0

是的,它的工作,我的錯!謝謝您的幫助! – AustinT

+0

'this.value'更好。 – hjpotter92

+0

我會盡可能接受答案。 – AustinT

1

試試這個

$('#order_by').on('change', function() { 
    $.ajax({ 
     type: "POST", 
     url: "sort_skill_be.php", 
     data: {skill:$(this).val()}, 
     success: function(result){ 
      alert("done"); 
     }, 
     error: function(){ 
      alert("error"); 
     } 
    }); 
}); 
0

你可以測試出來的東西像這樣...

// Skill sort on change 
$('#order_by').on('change', function() { 
    $.ajax({ 
     type: "POST", 
     url: "sort_skill_be.php", 
     data: {skill:this.value} 
    }).done(function(result){ 
     console.log('my results' + results); 
    }) 
}); 
1

您應該使用then代替donehttp://promises-aplus.github.io/promises-spec/

$('#order_by').on('change', function() { 
    $.post("sort_skill_be.php", { 
     skill: $(this).val() 
    }).then(function (result) { 
     console.log(result); 
    }).fail(function() { 
     console.err('failed to fetch data'); 
    }); 
});