在此代码中,我无法获取用于更新数据库的无线电输入值:
<script type="text/javascript">
function getVote() {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("poll").innerHTML=xmlhttp.responseText;
}
}
var vote = $('input[name=optionid]:checked').val();
xmlhttp.open("GET","poll_vote.php?vote="+vote);
xmlhttp.send();
}
在相同的文件上代码是:
$options = mysql_query ("select * from options where pollid='poll'");
while ($row1 = mysql_fetch_array($options))
{ $id = $row1['id'];
$option = $row1['choice'];
$votes = $row1['votes'];
echo '<form id="poll">';
echo '<input type="radio" name="optionid" value="'.$id.'" onclick="getVote()" /><span>'.$option.'</span><br />';
}
echo '</form>';
如何获取已检查的无线电值以在另一页上使用它&#34; poll_vote.php&#34;? 顺便说一句,输入无线电使用的选项是3。
答案 0 :(得分:0)
显然我不知道是否还有其他问题,但是应该测试这两个变化会发生什么,也许它会起作用。
<强>的Javascript 强>
LocalTime time = LocalTime.now(/* Optional but recommended: specify timezone */);
return time.isAfter(LocalTime.of(18, 0))
|| time.isBefore(LocalTime.of(6, 0));
<强> PHP 强>
function getVote() {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("poll").innerHTML=xmlhttp.responseText;
}
}
var vote = $(this).attr('value');
alert('your vote: ' + vote); // WITH THIS CHECK IF THE VOTE IS CORRECT
xmlhttp.open("GET","poll_vote.php?vote="+vote);
xmlhttp.send();
}
答案 1 :(得分:0)
我注意到的问题是,这一行echo '<form id="poll">';
被重复打印,与返回的行数一样多。
在您拥有的浏览器中,
<form id="poll">
<input type="radio" name="optionid" value="<?php echo $id; ?>" onclick="getVote()">
<form id="poll">
<input type="radio" name="optionid" value="<?php echo $id; ?>" onclick="getVote()">
<form id="poll">
<input type="radio" name="optionid" value="<?php echo $id; ?>" onclick="getVote()">
<form id="poll">
<input type="radio" name="optionid" value="<?php echo $id; ?>" onclick="getVote()">
<form id="poll">
<input type="radio" name="optionid" value="<?php echo $id; ?>" onclick="getVote()">
.
.
.
在此结束标记
之前,您会遇到许多重复的表单</form>
我建议您以这种方式安排代码,以便更好地进行分析
<?php $options = mysql_query ("select * from options where pollid='poll'"); ?>
<form class="" id="poll" action="" method="post">
<?php while ($row1 = mysql_fetch_array($options)): ?>
<?php
$id = $row1['id'];
$option = $row1['choice'];
$votes = $row1['votes'];
?>
<input type="radio" name="option<?php echo $id; ?>" value="<?php echo $id; ?>" onclick="getVote()">
<span><?php echo $option; ?></span>
<?php endwhile; ?>
</form>
并将打印您的表格,
<form id="poll">
<input type="radio" name="option1" value="<?php echo $id; ?>" onclick="getVote()">
<input type="radio" name="option2" value="<?php echo $id; ?>" onclick="getVote()">
<input type="radio" name="option3" value="<?php echo $id; ?>" onclick="getVote()">
<input type="radio" name="option4" value="<?php echo $id; ?>" onclick="getVote()">
</form>
注意这部分name="option<?php echo $id; ?>"
?我就是这样做的,这样你就可以为每个单选按钮添加唯一的变量,并且不要忘记像<form class="" id="poll" action="" method="post">
那样制作你的表单,以便通过方法发布数据。
这可能不是解决方案,我希望这会有所帮助。