使用ajax在单击时保存单选按钮的值

Posted

技术标签:

【中文标题】使用ajax在单击时保存单选按钮的值【英文标题】:Saving the value of radio buttons on click using ajax 【发布时间】:2014-03-14 14:07:56 【问题描述】:

我正在使用 php 创建考试。

我的问题是当页面刷新时,选中的单选按钮消失。每次单击单选按钮时,我都使用 ajax 将其保存在数据库中

<?php
session_start();
include './connect.php';
?>
<html>
<head>

</head>
<body>
<div id="online"></div>
<?php
$result = mysql_query("SELECT * FROM questions");
$count = mysql_num_rows($result);
while($rows = mysql_fetch_array($result))

?>
<script type="text/javascript" src="jquery.js"></script>
<script>
function saveans()

var aa = $('input:radio[name=a1]:checked').val();
alert(aa);
 $.ajax(
      type: "POST",
      url:  "ans.php",
      data: "stdID=1&q=2&ans="+aa,
     )





</script>

<script language="javascript" type="text/javascript">
$(document).ready(function() 

   $("#online").load("./tmr.php");
   var refreshId = setInterval(function() 
   //alert("aa");
      $("#online").load('./tmr.php');
      $.ajax(
                       type: "POST",
                       url: "./update.php",
                       data: "stdID=1"
     )
   , 1000);
   $.ajaxSetup( cache: false );
);

</script>


<p><?php echo $rows["questions"]; ?></p>
<input type="radio" id="a<?php echo $rows['questionNum']; ?>" name="a<?php echo $rows['questionNum']; ?>" value="A" onClick="saveans(this);"/>A. <?php echo $rows['choi1']; ?><br/>
<input type="radio" id="a<?php echo $rows['questionNum']; ?>" name="a<?php echo $rows['questionNum']; ?>" value="B" onClick="saveans(this);"/>B. <?php echo $rows['choi2']; ?><br/>
<input type="radio" id="a<?php echo $rows['questionNum']; ?>" name="a<?php echo $rows['questionNum']; ?>" value="C" onClick="saveans(this);"/>C. <?php echo $rows['choi3']; ?><br/>
<input type="radio" id="a<?php echo $rows['questionNum']; ?>" name="a<?php echo $rows['questionNum']; ?>" value="D" onClick="saveans(this);"/>D. <?php echo $rows['choi4']; ?><br/>
<?php

?>
</body>
</html>

and the php code is

<?php
include './connect.php';$command = mysql_query("UPDATE ans_1 SET ans".$_POST['q']."='".$_POST['ans']."' WHERE std_id='".$_POST['stdID']."'") or die(mysql_error());
?>

问题是我要更改数据的内容:“stdID=1&q=2&ans="+aa.. 我的单选按钮的名称是 a1,a2,a3 用于多个单选按钮.. 我想将其保存在我的数据库取决于名称 是否可以在 ajax 变量中插入数据库值? 并且标准值来自会话

【问题讨论】:

【参考方案1】:

您将函数定义为:

function saveans()
                 ^---no arguments

但在您的 onclick 处理程序中调用它:

onClick="saveans(this);"
                 ^^^^---passing in "this"

你想要:

function saveans(obj) 
    answer = obj.value;
    ... do ajax ...

无需通过 ID(以及硬编码的 id)查找,因为 thisobj 已经是您尝试通过 ID 查找的完全相同的 DOM 元素。

【讨论】:

我的代码没有错,我只需要添加 obj?那么数据呢? 我正在获取不同单选按钮的值,但它仍然只保存在 1 个字段中,我希望它根据单选按钮名称保存在不同的字段中,例如单选按钮名称是 a1 它会自动存储在我的 a1 和很快的字段中

以上是关于使用ajax在单击时保存单选按钮的值的主要内容,如果未能解决你的问题,请参考以下文章

Rails 5 ajax 表单:单击 Ajax 中的 2 个单选按钮之一提交表单

单击单选按钮时,将其值传递给 vue 组件实例

如何在按钮单击时提交离子单选按钮值?

如何保存单选按钮状态?

Reactjs:我正在根据状态检查单选按钮,但在选中一个单选按钮时无法单击其他单选按钮

使用 JavaScript 在控制台中单击任何单选按钮时如何显示特定值?