jQuery .serialize不发送到PHP.还是PHP ?


jQuery .serialize not posting to PHP.. or is it the PHP?

与我昨天的问题有关:我的两个单选按钮将在变化时改变价格:

<form id="f-p" method="post" action="forms.php">
         <label for="exkl">Exkl. moms</label>
         <input name="moms" id="exkl" type="radio" value="exkl" checked="checked" onClick="javascript:thisWorks();"/>
         <label for="inkl">Inkl. moms</label>
         <input name="moms" id="inkl" type="radio" value="" onClick="javascript:thisWorks();"/>
  </form>

我打算使用这个PHP:

if ($_POST["moms"] = "exkl") {
   echo "Nothing.";
 } else if($_POST["moms"] = "inkl") {
$inkl_query ="SELECT `product_id` FROM `cms_module_products_fieldvals` WHERE `fielddef_id`=4";
$iresult = mysql_query($inkl_query);
while ($row = mysql_fetch_row($iresult)) {
   var_dump($row);
   $inkVal = $row->value;
   echo $InkVal;
 }
} 

用这个jQuery发布值:

function thisWorks() {
$.ajax({
    data: $('form#f-p').serialize() + "&formSubmit=true",
    type: "POST",
    url:"forms.php", 
    success: function() {
            tar = $('form#f-p').serialize();
            alert(tar);
        }
    });
}
$('input[name=moms]').change(thisWorks);
thisWorks();

现在,我正在从Jquery中获得带有张贴值的警报,因此它们正在那里工作。它要么显示"moms=inkl"要么显示"moms=exkl"。我不知道这是不是问题所在。但是它们在PHP中不起作用。我没有得到mySQL查询。页面被加载,任何值的改变都不会对PHP处理表单的方式产生任何影响。这是怎么呢

有个问题:

if ($_POST["moms"] = "exkl") {
   echo "Nothing.";
 } else if($_POST["moms"] = "inkl") {

你的if语句总是true,因为$_POST["moms"] = "exkl"不检查等式。它只是让$_POST["moms"]等于"exkl"else if也一样。

修改代码:

if ($_POST["moms"] = "exkl") {
   echo "Nothing.";
 } else if($_POST["moms"] = "inkl") {

到此代码:

if ($_POST["moms"] == "exkl") {
   echo "Nothing.";
 } else if($_POST["moms"] == "inkl") {

看看会发生什么