AJAX没有向PHP页面提交复选框值

时间:2013-10-07 18:51:11

标签: php jquery ajax forms checkbox

我以前只使用无线电输入设置了表单,因此值只有一个或另一个。客户端现在希望它是一个复选框,因此您可以一次搜索多个变量。

我设置了一个测试jQuery方法,以确保它至少使用以下内容提交正确的字符串:

function showValues() {
    var datastr = $(".formC").find("input[type='checkbox']").serialize();
    $( "#bodyA" ).text( datastr );
}

$(".localSearch").on('click', showValues);

结果如下:

  

专长%5B%5D =辅助&安培;专长%5B%5D = LargeGroup&安培;专长%5B%5D = IndividualPlans

我是AJAX,jQuery和PHP的新手,但这似乎是要提交的正确字符串。

现在我使用jQuery AJAX将值提交到我的PHP页面。

$('.localSearch').on('click', function() { //Pulls data based on radial input
    var dataStr = $(".formC").find("input[type='checkbox']").serialize();
    $.ajax({
        type: "POST",
        datatype: "html",
        data: {
            expertise: dataStr
        },
        url: "expertise.php",
        success: function (data) {
            $("#bodyA").html(data);
        }
    });
});

以下是表单的外观:(表单包含更多内容,但这些是专业知识的唯一元素.php)

<label for="agent">Agent Services:</label><br />
<label for="ancillary"><input type="checkbox" value="Ancillary" name="expertise[]" id="ancillary" />Ancillary</label><br />
<label for="smallgroup"><input type="checkbox" value="SmallGroup" name="expertise[]" id="smallgroup" />Small Group</label><br />
<label for="largegroup"><input type="checkbox" value="LargeGroup" name="expertise[]" id="largegroup" />Large Group</label><br />
<label for="medicare"><input type="checkbox" value="Medicare" name="expertise[]" id="medicare" />Medicare</label><br />
<label for="longterm"><input type="checkbox" value="LongTermCare" name="expertise[]" id="longterm" />Long Term Care</label><br />
<label for="individual"><input type="checkbox" value="IndividualPlans" name="expertise[]" id="individual" />Individual Plan</label><br />
<label for="tpa"><input type="checkbox" value="TPASelfInsured" name="expertise[]" id="tpa" />TPA Self Insured</label><br />
<label for="ppaca"><input type="checkbox" value="CertifiedForPPACA" name="expertise[]" id="ppaca" />Certified for PPACA</label><br />
<label for="acaind"><input type="checkbox" value="ACA_Ind" name="expertise[]" id="acaind" />Individual  Marketplace Certified</label><br />
<label for="acashop"><input type="checkbox" value="ACA_Shop" name="expertise[]" id="acashop" />Shop Marketplace Certified <br />(small group)</label><br />
<span class="localSearch">Submit</span>

当它只处理一个值但它创建的字符串似乎是正确的字符串时,我有它工作。有什么想法吗?如果您需要更多代码或任何其他内容,请告诉我们!

Live site if needed

1 个答案:

答案 0 :(得分:1)

您正在序列化复选框元素集中的所有内容。我怀疑你只需要给定属性(id或value)的值。并且只有被检查的项目。以下是将所选复选框转储到数组中的示例:

$(“。formC input:checkbox:checked”)。each(function(){myArray.push($(this).val());})

jQuery get values of checked checkboxes into array

一旦有了数组,就可以遍历它以将你的sql WHERE谓词放在一起。