【问题标题】:Cannot send gender value properly through javascript/ajax无法通过 javascript/ajax 正确发送性别值
【发布时间】: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


【解决方案1】:

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

解决方法:使用窗口。

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);
     }

【讨论】:

  • 谢谢,但我只需要删除这个 name="gender" 就可以正常工作了。
  • 是的,这就解释了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-26
  • 2013-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多