表单未提交 - Bootstrap框架

时间:2015-11-25 10:42:02

标签: php html forms twitter-bootstrap twitter-bootstrap-3

我正在研究这个项目到目前为止一切顺利,但是我遇到了这个问题,我根本无法解决这个问题。

我在页面上有一个部分,您可以在其中编辑信息。

我正在同一页面检查$ _POST以避免重定向网站,但似乎提交按钮似乎没有提交任何内容。

编辑: 我 DON' T 得到任何PHP错误,当我按下提交按钮时,就会发生错误。

我的PHP与表单在同一页面上:

require_once("inc/functions.php");

if(isset($_POST['saveButton'])){
    $emailValue = mysql_real_escape_string($_POST['email']);
    $bukserValue = mysql_real_escape_string($_POST['bukser']);
    $jakkeValue = mysql_real_escape_string($_POST['jakke-str']);
    $skoValue = mysql_real_escape_string($_POST['shoes']);
    setUserSetting($emailValue, $bukserValue, $jakkeValue, $skoValue);
};

我的PHP功能:

function setUserSetting($emailValue, $bukserValue, $jakkeValue, $skoValue) {
    $emailValue = strip_tags($emailValue);
    $uid = $_SESSION['usrId'];
    $sql = "UPDATE usr SET email='$emailValue', sko='$skoValue', jakke='$jakkeValue', bukser='$bukserValue' WHERE id='$uid'";

    $result=mysql_query($sql);
    if($result === FALSE) { 
        die(mysql_error());
    } else {
        $_SESSION['usrEmail'] = $emailValue;
        return "gemt";  
    };
};

最后是我的html表单:

                       <section id="settings" class="bg-light-gray">
    <div class="container">
        <div class="row">
            <div class="col-lg-12 text-center">
                <h2 class="section-heading">Indstillinger</h2>
            </div>
        </div>
        <div class="row">
            <div class="col-lg-12">

                <form class="form-horizontal" action="#" method="post" role="form" name="settForm">
                    <fieldset>

                <!-- Text input-->
                        <div class="form-group">
                                <label class="col-md-4 control-label" for="email">E-mail</label>  
                            <div class="col-md-4">
                                <input id="email" name="email" type="text" placeholder="E-mail" class="form-control input-md" value="<? echo getUserSetting($usrEmail, 'mail'); ?>">
                            </div>
                        </div>

                        <div class="form-group">
                                <label class="col-md-4 control-label" for="bukser">Bukser størrelse</label>
                            <div class="col-md-4">
                                <select id="bukser" name="bukser" class="form-control">
                                    <option value="C44">C44</option>
                                    <option value="C46">C46</option>
                                </select>
                            </div>
                        </div>

                        <div class="form-group">
                          <label class="col-md-4 control-label" for="jakke-str">Jakke størrelse</label>
                            <div class="col-md-4">
                                <select id="jakke-str" name="jakke-str" class="form-control">
                                    <option value="XS">XS</option>
                                    <option value="S">S</option>
                                </select>
                            </div>
                        </div>

                        <div class="form-group">
                          <label class="col-md-4 control-label" for="shoes">Sko størrelse</label>
                            <div class="col-md-4">
                                <select id="shoes" name="shoes" class="form-control">
                                    <option value="36">36</option>
                                    <option value="37">37</option>
                                </select>
                            </div>
                        </div>
                    </fieldset>
                <button type="submit" class="btn btn-xl text-center center-block" id="saveButton" name="saveButton">Gem ændringer</button>
            </form>
        </div>
    </div>
</div>

4 个答案:

答案 0 :(得分:0)

解决方案:

为您的按钮添加值!在本地测试我发现按钮参数为空,所以isset()evalutate为false。

  <button type="submit" class="btn btn-xl text-center center-block" id="saveButton" name="saveButton" value="saveButton" >Gem ændringer</button>

至于<input type="button">是带有按钮值的value属性。

其他详细信息:

首先,为了更好的练习,我会将您的表单与businnes脚本分开。

 <form class="form-horizontal" action="" method="post" role="form" name="settForm">

<form class="form-horizontal" action="**YOURSCRIPT.PHP**" method="post" role="form" name="settForm">

您的选择缺少</select>标记

您可以随时在“控制器”脚本中清理数据,它可以更加可维护。 为了制作出良好的用户体验,您可以使用javascript添加客户端验证。

此外,不推荐使用mysql扩展。去找mysqli甚至更好的PDO。

答案 1 :(得分:0)

问题是因为代码中缺少关闭</select>标记。因为这将导致Undefined index: Sko错误。所以首先要包含缺失的标签。

// your code

<div class="form-group">
  <label class="col-md-4 control-label" for="jakke-str">Jakke størrelse</label>
    <div class="col-md-4">
        <select id="jakke-str" name="jakke-str" class="form-control">
            <option value="XS">XS</option>
            <option value="S">S</option>
        </select>
    </div>
</div>

<div class="form-group">
  <label class="col-md-4 control-label" for="Sko">Sko størrelse</label>
    <div class="col-md-4">
        <select id="Sko" name="Sko" class="form-control">
            <option value="36">36</option>
            <option value="37">37</option>
        </select>
    </div>
</div>

// your code

旁注:请不要使用mysql_数据库扩展,它们在PHP 5.5.0中已弃用,并已在PHP 7.0.0中删除。请改用mysqliPDO扩展程序。这是why you shouldn't use mysql_

答案 2 :(得分:0)

删除 mysql_real_escape_string()函数来自您获取发布值的代码

答案 3 :(得分:0)

问题解决了。

监督javascript错误的我。

自我注意:疲倦时不要编码:D

感谢你的建议!