0

我正在尝试制作一个小表单,让用户从 3 个不同的单选按钮列表中选择一个元素,以将一个元素设置为用户活动元素(将存储到 MySQL)。不知何故,它不起作用,我似乎无法弄清楚为什么,也许你们中的某个人可以看到我做错了什么?

HTML:

<form name="activeForm1" method="post">
<fieldset data-role="controlgroup">
    <div class="ui-radio">
        <input type="radio" name="active" value="1" id="1">
        <label for="1"></label></input>
    </div>
    <div class="ui-radio">
        <input type="radio" name="active" value="2" id="2">
        <label for="2"></label></input>
    </div>
    <div class="ui-radio">
        <input type="radio" name="active" value="3" id="3">
        <label for="3"></label></input>
    </div>
</fieldset>
<div data-role="footer">
    <input type="submit" href="#" onclick="setActive(1)"/>
</div>
</form>

JavaScript / Ajax 调用

function setActive(formid) 
    {
            $.ajax(
            {
                type:'POST',
                url:'active.php',
                data:$('#activeForm'+formid).serialize(),
                success:function(response)
                {
                }
            }
        );
    }

PHP代码:

session_start();
include('connectToDb.php');
$id = $_SESSION['id'];

if (isset($_POST['active']))
{
    $formValue = $_POST['active'];
    mail('my@mail.com','Test',$formValue,'From: dummy@mail.com');
    mysql_query(/* UPDATE MySQL */);
    header("Location: main.php");
}
else
{
    mail('my@mail.com','Test','No data recieved!','From: dummy@mail.com');
}

所以它一直有效,if (isset($_POST['active']))但随后给我发邮件说没有收到任何数据。我在同一页面上已经有 2 个类似的表格,它们更大,运行没有问题。无法弄清楚我在这里做错了什么。

4

3 回答 3

2

错误代码 :

  data:$('#activeForm'+formid).serialize(),

#activeForm不是id,是form标签的名字,

将表单标签更正为,

<form name="activeForm1" id="activeForm1" method="post">
于 2012-07-27T06:31:19.667 回答
2

替换以下行

data:$('#activeForm'+formid).serialize(),

data: $('form[name="activeForm'+formid+'"]').serialize(),
于 2012-07-27T06:31:51.160 回答
0

改变

<input type="submit" href="#" onclick="setActive(1)"/>

<input type="button" href="#" onclick="setActive(1)"/>

然后它应该工作

于 2012-07-27T06:26:58.463 回答