Php 单击时将DIV的值发送到SQL表

Php 单击时将DIV的值发送到SQL表,php,sql,survey,Php,Sql,Survey,检索分配给div的值时遇到一些问题。DIVs包含一项调查的答案。(我不能使用其他输入,如选择、单选按钮) 表格如下: <form id='Form01' action=''> <div class="box" id='input01' onclick="submit_answer()" value='1'>YES</div> <div class="box" id='inp

检索分配给div的值时遇到一些问题。DIVs包含一项调查的答案。(我不能使用其他输入,如选择、单选按钮)

表格如下:

<form id='Form01' action=''>    
<div class="box" id='input01' onclick="submit_answer()" value='1'>YES</div>                                     
<div class="box" id='input02' onclick="submit_answer()" value='2'>NO</
</form> 
如果受访者点击“是”,我想插入“1”,如果点击“否”,则插入“2”,但
var value01=$(this.attr('value')返回“未定义”。


谢谢您的帮助。

您的代码有两个问题:

  • 您没有访问触发单击的HTML元素
  • Value是输入元素(div不是)上的属性
要正确修复JS(并保持使用jQuery),请尝试以下操作:

function submit_answers(e) {
    var value01 = $(this).attr('value');
    $.post('input_answers.php',{value:value01});
}
我在代码中注意到的其他问题:

  • 有多个HTML具有相同的HTML id。“id”应该是唯一的标识符(如果您使用class属性来设置样式或附加JavaScript事件,请考虑使用它)
  • 另一种输入方式会更好。考虑使用单选按钮或选择,因为这允许更容易访问性
  • 使用OnCutt HTML属性对大多数Web开发人员都不赞成——考虑用JavaScript附加事件(例如使用jQuery的.on或VANILA-JS的元素。AdvestListNo.())
编辑:更新问题后 自从我最初的回答以来,JavaScript和HTML已经发生了很大的变化。其他问题包括:

  • onclick属性中指定的函数与JS部分中编写的函数不匹配
  • 在选项1中定义答案时,需要在#input01周围加引号(这无论如何都是不正确的,因为它总是选择第一个div)
  • 选择器可能需要设置e.target
在(实质性)编辑中修复的问题:

  • 重复的身份证
  • 值不是非输入元素上的JavaScript属性
    • 像这样试试

      $(“#输入01,#输入02”)。单击(函数(){
      var answer=$(this.attr('value');
      控制台日志(应答);
      $.post('input_answers.php',{value:answer});
      });
      
      
      对
      不
      
      Hi Brian-我已经更新并简化了我的代码示例,但它仍然没有抓住答案的价值,除非我指定#input01(参见选项1)谢谢你们。我按照Brian的建议替换了click(function(),然后使用Jasinth提示只在一行代码中获取所有值!太棒了!请不要做大量编辑,因为这会导致原来正确的答案变得不正确(因此会获得否决票)
      function submit_answers(e) {
          var value01 = $(this).attr('value');
          $.post('input_answers.php',{value:value01});
      }