使用$ .post时$ _POST为空

时间:2014-09-09 17:26:38

标签: php jquery

这是我的问题: 我想使用PHP表单进行数据库搜索。我有我的表单,即使有一些空字段,我希望它能够工作(就像你填写的字段越多,你得到的答案就越具体)。我正在使用Jquery首先从我的表单中获取值,然后将$ .post发送到我的实际php文件,该文件连接数据库并进行搜索。我只是给空字段一些特定的值,这在我的php文件中被识别为' empty'字段,所以我可以进行正确的SQL查询。问题是我发现我的$ _post变量为空,即使Jquesry脚本中的变量设置正确。我在其他情况下使用此方法,它工作正常。我不知道是否这件事,但我也在使用Jquery在我的主div中加载我的表单。警报(数据)功能完成它的工作:在提示窗口中,我可以看到我的搜索结果,但重新加载profile.php什么都没给。这是我的代码:

形式:

<script type="text/javascript" src="scripts/admin.js"></script>
<form id="form_admin">
    <table cellpadding="0" cellspacing="0" width="180">
        <p style="line-height: 2cm; ">
            <tr>
                <td width="50" class="label1">Imię:</td>
                <td>
                    <input id="imie" type="text" value="">
                </td>
            </tr>
            <tr>
                <td width="50" class="label1">Nazwisko:</td>
                <td>
                    <input id="nazwisko" type="text" value="">
                </td>
            </tr>
            <tr>
                <td width="50" class="label1">Numer telefonu:</td>
                <td>
                    <input id="telefon" type="text" value="">
                </td>
            </tr>
            <tr>
                <td align="center" colspan="2">
                    <input type="button" id="register" value="Pokaż!">
                    <br>
                </td>
            </tr>
        </p>
    </table>
</form>

admin.js

$(document).ready(function () {
    $("#register").click(function () {
        if ($("#imie").val() != "") {
            var imie = $("#imie").val();
        } else {
            var imie = 'nic';
        }
        if ($("#nazwisko").val() != "") {
            var nazwisko = $("#nazwisko").val();
        } else {
            var nazwisko = 'nic';
        }
        if ($("#telefon").val() != "") {
            var telefon = $("#telefon").val();
        } else {
            var telefon = 'nic';
        }
        $.post("profile.php", {
            name: imie,
            surname: nazwisko,
            telephone: telefon
        }, function (data) {
            alert(data);
        });
        $("#main").load('profile.php');
    });
});

profile.php

<? php
include('config.php');#logging into database
if (isset($_POST['name']) && isset($_POST['surname']) && isset($_POST['telephone'])) {
    $IMIE = $_POST['name'];
    $NAZWISKO = $_POST['surname'];
    $TELEFON = $_POST['telephone'];#then my sql queries go...
    while ($user = mysql_fetch_assoc($select)) {
        echo 'ORDER_ID zamówienia: '.$user['ORDERINFO_ID'];
        echo 'DATA zamówienia: '.$user['DATE_PLACED'];
    }
    while ($user = mysql_fetch_assoc($select2)) {
        echo 'SUBORDER_ID: '.$user['SUBITEM_ID'];
        echo 'Ilość: '.$user['QUANTITY'];
        echo 'Koszt zamówienia: '.$user['COST'];
    }
} else {
    echo "$_POST variables aren't set";
}
?>

编辑: 我已经安装了Firebug并在提交数据后检查了POST profile.php,它包含了所有预期的变量。

2 个答案:

答案 0 :(得分:0)

尝试将$ .post函数更改为:

$.post("profile.php", {
        data: "&name=" + imie + "&surname=" + nazwisko + "&telephone=" + telefon
    }, function (data) {
        alert(data);
    });

答案 1 :(得分:0)

您的输入没有任何名称

例如:

<input id="imie" type="text" value="" name="imie">