无法通过javascript / ajax正确发送性别价值

时间:2017-07-31 14:17:44

标签: javascript php ajax

在我的数据库中,我的gender_id属性设置为枚举('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

在我的注册表中有

  // 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.正确插入所有其他数据。

问题解决我只需删除此部分名称=“性别”即可使用。

1 个答案:

答案 0 :(得分:0)

我不明白为什么,但性别功能似乎并不为人所知。

解决方法:使用窗口。

var genderMF = "M";

    window.gender =  function (number){

         if(number !== 1 && number !== 2){
             alert('Please select your gender');
         }
         if(number == 1){
             genderMF = "M";
         }
          if(number == 2){
             genderMF = "F";
         }
         console.log(genderMF);
     }