Php Jquery使用post属性传递ajax调用

Php Jquery使用post属性传递ajax调用,php,jquery,ajax,Php,Jquery,Ajax,在这里检查了几个关于堆栈溢出和jquery文档的主题,但仍然卡住了 我基本上希望发布(使用ajax/jquery)来更新div的内容 function loadSubCats(value) { $.post("load_sub_cats.php", data: { "catid": value }, type: "POST", contentType: "application/x-www-form-urlencoded",

在这里检查了几个关于堆栈溢出和jquery文档的主题,但仍然卡住了

我基本上希望发布(使用ajax/jquery)来更新div的内容

function loadSubCats(value)
{
    $.post("load_sub_cats.php",
        data: { "catid": value },
        type: "POST",
        contentType: "application/x-www-form-urlencoded",
            function(data) {
        $('#sub_categories').html("Data Loaded: " + data);
    });
}
但是我没有得到任何回应。该页面包含sub_categories div,这对于表单事件称为onclick

<select name='cselect3' onChange='loadSubCats(this.value)' class='e1'>


所以基本上,它应该超过字段(cselect3)的值并加载_sub_cats.php应该只回显$_POST[catid];就这样。但我没有得到任何活动,所以它认为这很简单,我搞砸了

您混合了不同的
$.post
$.ajax
语法。如果要使用对象语法,请调用
$.ajax
,因为
$.post
将其参数作为一个简单的未命名列表

function loadSubCats(value)
{
   $.ajax({
        url : "load_sub_cats.php",
        data: { "catid": value },
        type: "POST",
        contentType: "application/x-www-form-urlencoded",
        success: function(data) {
            $('#sub_categories').html("Data Loaded: " + data);
        }
    });
}
您还可以直接附加
change
事件,而不是内联,并取消
loadSubCats()
函数:

$(document).ready(function(){
    $('select[name=cselect3]').change(function(){
       $.ajax({
            url : "load_sub_cats.php",
            data: { "catid": $(this).val() },
            type: "POST",
            contentType: "application/x-www-form-urlencoded",
            success: function(data) {
                $('#sub_categories').html("Data Loaded: " + data);
            }
        });
    });
});
两件事:

您正在使用非必需的“在文章中键入”

即使在移除它之后,也不起作用,只是试着提醒它-

function loadSubCats(value)
{
    $.post("load_sub_cats.php",
        data: { "catid": value },
        type: "POST",
        contentType: "application/x-www-form-urlencoded",
            function(data) {
          alert(data)
         $('#sub_categories').html("Data Loaded: " + data);
    });
}
通过警觉你会知道的- 1) 如果出现任何php错误,它将发出警告, 2) 如果php工作正常,它将使用您的值发出警报

根据最新评论更新我的帖子: 请尝试使用以下方法:

$(document).ready(function() {
  $('.e1').change(function() {
        $.post("load_sub_cats.php",
        data: { "catid": value },
        type: "POST",
        contentType: "application/x-www-form-urlencoded",
            function(data) {
          alert(data)
         $('#sub_categories').html("Data Loaded: " + data);
    });  
  })
});

$有问题。post
语法。以下是它应该是什么样子:

function loadSubCats(value)
{
    $.post("load_sub_cats.php",{ "catid": value },
            function(data) {
        $('#sub_categories').html("Data Loaded: " + data);
    });
}
就这么简单

function loadSubCats(value)
{
$.post("load_sub_cats.php",
    {  catid: value }, 
     function(data) {
     $('#sub_categories').html("Data Loaded: " + data); }
     );
}

您发送的是catid而不是“catid”

您是否尝试检查请求?Chrome开发工具还是Firebug?您得到了什么?1错误,未捕获引用错误:loadSubCats未定义,这意味着您的函数“loadSubCats”包含
$。post
从未被调用。请查看loadSubCats函数上面包含/编写的脚本。可能存在一些错误,因此loadSubCats函数不可用found@MichaelClarke你试过我的答案了吗?我已经更正了您的代码。@MichaelClarke:更新了我的帖子。仍然收到相同的错误并且没有输出。已检查文件接收,没有错误。如果使用$(document).ready(),则不会出现相同的错误。如果错误与您检查PHP文件输出的方式相同?尝试此操作后,问题没有得到解决,仍然得到ncaught ReferenceError:loadSubCats未定义,屏幕上没有输出。您将
loadSubCats()函数放置在何处?将其放在全局范围内,而不是放在a
$(文档)中。就绪
或任何其他闭包中。这将加载其他页面,但如何使用它传递的值$_GET,$POST都不包含iTunes$\u POST[“catid”]应获取上述函数传递的数据。