我正在研究这个项目到目前为止一切顺利,但是我遇到了这个问题,我根本无法解决这个问题。
我在页面上有一个部分,您可以在其中编辑信息。
我正在同一页面检查$ _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>
答案 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中删除。请改用mysqli
或PDO
扩展程序。这是why you shouldn't use mysql_
答案 2 :(得分:0)
删除 mysql_real_escape_string()函数来自您获取发布值的代码
答案 3 :(得分:0)
问题解决了。
监督javascript错误的我。
自我注意:疲倦时不要编码:D
感谢你的建议!