输入没有传递给PHP脚本

时间:2014-11-26 04:06:36

标签: php html

我在下面有一个html表单:

    <section id="main" style="float: right;  text-align: left;  width: 83%;">   
        <article>
            <form>
                <p>Name:   <div><input id="name" type=text/></p></div><br \>
                <p>Phone:   <div><input id="phone" type=text/></p></div><br \>
                <p>Address:   <div><input id="address" type=text/></p></div><br \>
                <p>Username:   <div><input id="username" type=text/></p></div><br \>
                <p>Password:   <div><input id="password" type="password"/></p></div><br \>
                <p>Email:   <div><input id="email" type="text"/></p></div>
                <div><input id="submitDB" type="submit" value="Register"/></div>
            </form>
            <script type="text/javascript">
                      $('#submitDB').on('click', function() {
                          event.preventDefault();

                          $.ajax({
                               url: "registerDB.php",
                               data: { name: $('#name').val(), phone: $('#phone').val(), address: $('#address').val(), username: $('#username').val(), password: $('#password').val(), email: $('#email').val()},
                               type: "POST"
                          }).done(function(data) {
                              if(data === "true"){
                                  alert(data);
                              }
                              else
                              {
                                  alert(data);
                              }
                          });

                      });
           </script>
        </article>
    </section>

此表单应提交输入并调用&#34; registerDB.php&#34;包含

的文件
    <?php
        require_once("config.php");
        require_once("MysqliDb.php");

        $DB = new MysqliDb($DBCREDS['HOSTNAME'], $DBCREDS['USERNAME'], $DBCREDS['PASSWORD'], $DBCREDS['DATABASE']);

        $name = $_POST["name"];
        $phone = $_POST['phone'];
        $address = $_POST['address'];
        $username = $_POST['username'];
        $password = $_POST['password'];
        $email = $_POST['email'];



        $data = Array ("name" => $name,
                       "phone" => $phone,
                       "address" => $address,
                       "email" => $email,
                    );

        var_dump($data);
       if($DB->insert('member', $data))
        {
                $user = Array ( 
                        "username" => $username,
                        "password" => $password,
                        );

                        var_dump($user);
                        die();
            if($DB->insert('member_login', $user))
            {
                echo "You are now registered!";
            }
        }   
        else
        {
            echo "Please Fill All Data And Resubmit";
        }





    ?>

但是用户名和密码变量没有通过。这里有什么我想念的吗?这不一定是超级安全&#34;我正在为我的System Analysis类开发一个项目,基本上我正在为一个演示文稿制作一个网站。

4 个答案:

答案 0 :(得分:2)

您需要将name属性添加到input。如:

<form id="myForm">
    <p>Name:   <div><input id="name" name="name" type=text/></p></div><br \>
    <p>Phone:   <div><input id="phone" name="phone" type=text/></p></div><br \>
    <p>Address:   <div><input id="address" name="address" type=text/></p></div><br \>
    <p>Username:   <div><input id="username" name="username" type=text/></p></div><br \>
    <p>Password:   <div><input id="password" name="password" type="password"/></p></div><br \>
    <p>Email:   <div><input id="email" name="email" type="text"/></p></div>
    <div><input id="submitDB" type="submit" value="Register"/></div>
</form>

并使用以下内容通过jquery提交form #myForm。 (将{mymorm&#39;作为id的{​​{1}}

form

提示:使用ajaxForm以便在创建ajax表单时不重新发明轮子。

答案 1 :(得分:2)

您需要将name属性添加到表单输入:

<form>
    <p>Name:   <div><input id="name" name="name" type=text/></p></div><br \>
    <p>Phone:   <div><input id="phone" name="phone" type=text/></p></div><br \>
    <p>Address:   <div><input id="address" name="address" type=text/></p></div><br \>
    <p>Username:   <div><input id="username" name="username" type=text/></p></div><br \>
    <p>Password:   <div><input id="password" name="password" type="password"/></p></div><br \>
    <p>Email:   <div><input id="email" name="email" type="text"/></p></div>
    <div><input id="submitDB" type="submit" value="Register"/></div>
</form>

答案 2 :(得分:1)

您使用GET中的$.ajax方法发送数据:

type: "GET"

在PHP中,你期待:

$name = $_POST["name"];

成功

type: "POST"

答案 3 :(得分:0)

我在我的服务器上测试了你的HTML,并且没有问题将它发送到基本的PHP文件。我的PHP看起来像这样:

<?php
print_r($_POST);
?>

我怀疑你的PHP出错,可能是与SQL数据库的连接。尝试启用错误报告以获取更多信息。