Javascript 在PHP/HTML中显示无法正常工作的单选按钮
我试图为我的调查做一个插入语句,但首先单选按钮没有显示,我认为脚本部分工作不正常。这是一份调查表,我的目标是提交一份调查 我认为脚本部分不起作用Javascript 在PHP/HTML中显示无法正常工作的单选按钮,javascript,php,html,mysql,forms,Javascript,Php,Html,Mysql,Forms,我试图为我的调查做一个插入语句,但首先单选按钮没有显示,我认为脚本部分工作不正常。这是一份调查表,我的目标是提交一份调查 我认为脚本部分不起作用 <div style="padding: 40px;"> <iframe name="votar" style="display:none;"></iframe> <?php $con = mysqli_connect("localhost","root","","ime
<div style="padding: 40px;">
<iframe name="votar" style="display:none;"></iframe>
<?php
$con = mysqli_connect("localhost","root","","imetrics");
$id = $_REQUEST['survey_id'];
$count=1;
$answer=0;
$query = "SELECT SF.survey_id, SF.surveytitle, SF.surveycategory, C.categoryname, Q.Option_1, Q.Option_2, Q.Option_3, Q.Option_4, Q.Option_5, Q.Option_6, Q.Option_7, Q.Option_8, Q.Option_9, Q.Option_10 AS pcatname, SF.surveysubcategory, SC.categoryname AS scatname, SF.gender, SF.age, SF.occupation, O.name, SF.occupation_status, SF.status, SFQ.question_id, Q.questiontitle
FROM surveyform AS SF
LEFT JOIN category AS C ON SF.surveycategory = C.category_id
LEFT JOIN category AS SC ON SF.surveysubcategory = SC.category_id
INNER JOIN occupation AS O ON SF.occupation = O.occupation_id
INNER JOIN surveyform_questions AS SFQ ON SF.survey_id = SFQ.survey_id
INNER JOIN question AS Q ON SFQ.question_id = Q.question_id
WHERE SFQ.survey_id = $id";
$result = mysqli_query($con,$query);
if($result) {
?>
<form method="POST" action="insertsurvey.php" target="votar">
<?php
while ($row = mysqli_fetch_array($result)) {
$questions = $row['questiontitle'];
echo "<b>Question " . $count . ".)</b> " . $questions . "</br>";
$option1 = $row['Option_1'];
$option2 = $row['Option_2'];
$option3 = $row['Option_3'];
$option4 = $row['Option_4'];
$option5 = $row['Option_5'];
$option6 = $row['Option_6'];
$option7 = $row['Option_7'];
$option8 = $row['Option_8'];
$option9 = $row['Option_9'];
$option10 = $row['Option_10'];
if (!is_null($option1)) {
?>
<div id="question_<?php echo $count; ?>_option1" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]" value="<?php echo $option1; ?>"> <?php echo $option1; ?>
</div>
<br>
<?php
}
if (!is_null($option2)) {
?>
<div id="question_<?php echo $count; ?>_option2" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]"
value="<?php echo $option2; ?>"> <?php echo $option2; ?>
</div>
<br>
<?php
}
if (!is_null($option3)) {
?>
<div id="question_<?php echo $count; ?>_option3" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]"
value="<?php echo $option3; ?>"> <?php echo $option3; ?>
</div>
<br>
<?php }
if (!is_null($option4)) {
?>
<div id="question_<?php echo $count; ?>_option4" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]"
value="<?php echo $option4; ?>"> <?php echo $option4; ?>
</div>
<br>
<?php }
if (!is_null($option5)) {
?>
<div id="question_<?php echo $count; ?>_option5" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]"
value="<?php echo $option5; ?>"> <?php echo $option5; ?>
</div>
<br>
<?php }
if (!is_null($option6)) {
?>
<div id="question_<?php echo $count; ?>_option6" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]"
value="<?php echo $option6; ?>"> <?php echo $option6; ?>
</div>
<br>
<?php }
if (!is_null($option7)) {
?>
<div id="question_<?php echo $count; ?>_option7" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]"
value="<?php echo $option7; ?>"> <?php echo $option7; ?>
</div>
<br>
<?php }
if (!is_null($option8)) {
?>
<div id="question_<?php echo $count; ?>_option8" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]"
value="<?php echo $option8; ?>"> <?php echo $option8; ?>
</div>
<br>
<?php }
if (!is_null($option9)) {
?>
<div id="question_<?php echo $count; ?>_option9" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]"
value="<?php echo $option9; ?>"> <?php echo $option9; ?>
</div>
<br>
<?php }
if (!is_null($option10)) {
?>
<div id="question_<?php echo $count; ?>_option10" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]"
value="<?php echo $option10; ?>"> <?php echo $option10; ?>
</div>
<br>
<?php }
$count++;
} ?>
<input type="submit" name="submit" value="submit"/>
</form>
<script src="//code.jquery.com/jquery-1.12.4.js"></script>
<script type="text/javascript">
jQuery(function($) {
var id1 = <?php echo json_encode($option1); ?>;
var id2 = <?php echo json_encode($option2); ?>;
var id3 = <?php echo json_encode($option3); ?>;
var id4 = <?php echo json_encode($option4); ?>;
var id5 = <?php echo json_encode($option5); ?>;
var id6 = <?php echo json_encode($option6); ?>;
var id7 = <?php echo json_encode($option7); ?>;
var id8 = <?php echo json_encode($option8); ?>;
var id9 = <?php echo json_encode($option9); ?>;
var id10 = <?php echo json_encode($option10); ?>;
if (id1 != null) {
$("div#option1").show();
}
if (id2 != null) {
$("div#option2").show();
}
if (id3 != null) {
$("div#option3").show();
}
if (id4 != null) {
$("div#option4").show();
}
if (id5 != null) {
$("div#option5").show();
}
if (id6 != null) {
$("div#option6").show();
}
if (id7 != null) {
$("div#option7").show();
}
if (id8 != null) {
$("div#option8").show();
}
if (id9 != null) {
$("div#option9").show();
}
if (id10 != null) {
$("div#option10").show();
}
})(jQuery);
</script>
</div>
</div>
</body>
</html>
<?php
}
?>
除了Xorifelse提到的SQL注入问题之外,还有HTML的问题。每个问题的name属性都需要不同。让它保持不变是你的单选按钮按原来的方式工作的原因 您可以这样做解决此问题的方法有很多:
每次我看到人们使用不知道漏洞的代码时,我的视网膜都会灼伤。是的,您的代码可能会被删除。请阅读有关如何为或使用准备好的语句的文档。如果你不这样做,请做好准备,有一天你的数据库会泄露到网络上。学习教程或网站,可以帮助你首先,我甚至不能理解你的代码。在这种情况下,我应该把开始标记放在哪里@Davis@Jola,位于where循环上方的任何位置都可以。在你的if$之后,结果就可以了。如果你在里面或外面打开或关闭,将来会更清晰,但两者都可以。谢谢。我刚刚意识到我有更大的问题:我右键单击了问题1中每个单选按钮上的inspect元素,问题1中三个单选按钮的值是answerone,answertwo,answertwo编辑了输入中的名称,这是一个大问题,因为我只希望这三个按钮有一个值/名称@戴维辛。。。我不确定我是否明白发生了什么。你能用更多的细节更新你的问题吗?更新sir@davis
<?php
while (condition) {
// do all your stuff
$count++;
}
?>
<input type="submit" name="submit" value="submit" />
</form>
<?php
// all your same stuff before this mysqli_query call...
$result = mysqli_query($con,$query);
if ($result) {
?>
<form action="php-file.php" method="post">
<?php
while ($row = mysqli_fetch_array($result)) {
$questions = $row['questiontitle'];
echo "<b>Question " . $count . "</b> " . $questions . "<br>";
$option1 = $row['Option_1'];
$option2 = $row['Option_2'];
$option3 = $row['Option_3'];
$option4 = $row['Option_4'];
$option5 = $row['Option_5'];
$option6 = $row['Option_6'];
$option7 = $row['Option_7'];
$option8 = $row['Option_8'];
$option9 = $row['Option_9'];
$option10 = $row['Option_10'];
if (!is_null($option1)) {
?>
<div id="question_<?php echo $count; ?>_option1" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]" value="<?php echo $option1; ?>"> <?php echo $option1; ?>
</div>
<br>
<?php
} // if
if (!is_null($option2)) {
?>
<div id="question_<?php echo $count; ?>_option2" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]" value="<?php echo $option2; ?>"> <?php echo $option2; ?>
</div>
<br>
<?php
} // if
if (!is_null($option3)) {
?>
<div id="question_<?php echo $count; ?>_option3" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]" value="<?php echo $option3; ?>"> <?php echo $option3; ?>
</div>
<br>
<?php
} // if
// options 4-9 here, the exact same way as option 1-3 above
if (!is_null($option10)) {
?>
<div id="question_<?php echo $count; ?>_option10" style="display: none;">
<input type="radio" name="answer[<?php echo $count; ?>]" value="<?php echo $option10; ?>"> <?php echo $option10; ?>
</div>
<br>
<?php
} // if
$count++;
} // end while
?>
<input type="submit" name="submit" value="submit" />
</form>
<?php
} // end if (result)
<?php
# this stuff removed for brevity, but you'd just put the same stuff you had originally
if ($result) {
?>
<form method="POST" action="insertsurvey.php" target="votar">
<?php
while ($row = mysqli_fetch_array($result)) {
$questions = $row['questiontitle'];
echo "<b>Question " . $count . ".)</b> " . $questions . "<br>";
for ($i = 1; $i <= 10; $i++) {
if (!empty($row['Option_' . $i])) {
?>
<div id="question_<?php echo $count; ?>_option<?php echo $i; ?>">
<input type="radio" name="answer[<?php echo $count; ?>]" value="<?php echo $row['Option_' . $i]; ?>"> <?php echo $row['Option_' . $i]; ?>
</div>
<?php
}
}
$count++;
}
?>
<input type="submit" name="submit" value="submit"/>
</form>
<!-- no javascript/jquery script needed anymore; though obviously you'd want to restore it if you have javascript doing something else -->
<?php
}
?>