【发布时间】:2018-01-07 04:10:43
【问题描述】:
在我的数据库中,我的 gender_id 属性设置为 enum ('M', 'F') 并且 M 是默认值
性别形式
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label>Gender: </label>
<div class="btn-group btn-group-justified" role="group" >
<div class="btn-group" role="group">
<button type="button" name="gender" id="**gender_Mid**" class="btn btn-primary active" value="M" onclick="gender(1)"> Male </button>
</div> // male gender
<div class="btn-group" role="group">
<button type="button" name="gender" id="**gender_Fid**" class="btn btn-primary" value="F" onclick="gender(2)"> Female </button>
</div> //female gender
</div> <!--End of Button Group-->
</div> <!--End of column-->
Ajax/javascript
<script>
var genderMF = "M";
function gender(number){
if(number !== 1 && number !== 2){
alert('Please select your gender');
}
if(number == 1){
genderMF = "M";
}
if(number == 2){
genderMF = "F";
}
}
function send_registration(){
var firstname = document.getElementById("firstname").value;
var gender = genderMF;
var parameters=
"firstname="+firstname+
...
"&gender_id="+gender; // is there an error here?
var ajax=new XMLHttpRequest();
ajax.onreadystatechange=function(){
if(ajax.readyState === 4 && ajax.status === 200) {
alert(ajax.responseText);
}
};
ajax.open("POST","register.php",false);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajax.send(parameters);
} // End of function
在我的注册 php 中有
// 6. Check for an Gender.
else if(!in_array($_POST['gender_id'], array('M','F')) ){
echo 'Please enter a gender!';
exit();
}
$gender = escape_data($_POST['gender_id']);
我的 javascript/ajax 和性别在同一个 php 文件中,而 register.php 容器只有我的 php 代码
无论我单击女性还是男性按钮,我总是在我的数据库中获得值 M。所有其他数据都已正确插入。
问题解决我只需要删除这个部分 name="gender" 就可以了。
【问题讨论】:
-
“这里有错误吗” - 你的控制台说什么?你有没有做过
console.log(parameters);看看它的样子?你有没有做过print_r($_POST)看看你实际得到了什么?你需要做一些调试... -
用收音机代替
onclick,这是一个答案:radio gender -
不是复选框,而是无线电输入
-
你能显示插入查询吗
-
我希望
escape_data()不是在DB-call 之前转义数据?如果是的话,你应该改用Prepared Statements...
标签: javascript php ajax