好的,我们在配置文件上有一个星级评分系统,它作为iframe嵌入,不安全,因为它暴露数据库表等,但即将到来。现在我们要将评级值插入到1-5中iframe内的表单中的隐藏字段中,并自动提交。我们怎样才能做到这一点?一些在线示例不起作用。
内部iframe:
<form action="submit_rating.php" method="POST">
<input type="text" name="1" id="rate1" maxlength="1">
<input type="text" name="2" id="rate2" maxlength="1">
<input type="text" name="3" id="rate3" maxlength="1">
<input type="text" name="4" id="rate4" maxlength="1">
<input type="text" name="5" id="rate5" maxlength="1">
<input type="submit" value="Rate" style="display:none;" />
</form>
IFRAME:
<iframe src="http://domain.com/submit_rating.php" frameborder="0" scrolling="no" height="10" width="25" name="frame"></iframe>
评级链接:
<a href="howtoinsert?">1</a>
<a href="howtoinsert?">2</a>
<a href="howtoinsert?">3</a>
<a href="howtoinsert?">4</a>
<a href="howtoinsert?">5</a>
谢谢。就像我说的那样,所有其他例子都是垃圾,但没有用。
答案 0 :(得分:1)
你可以这样做(使用jquery):
评分网站:
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
function setRating(rating) {
var frame = $('iframe')[0].contentWindow.document;
$(frame).find('#rate'+rating).val('1');
$(frame).find('form').submit();
}
</script>
</head>
<body>
<iframe src="frame.html" frameborder="0" scrolling="no" height="10" width="25" name="frame"></iframe>
<a href="javascript:setRating(1)">1</a>
<a href="javascript:setRating(2)">2</a>
<a href="javascript:setRating(3)">3</a>
<a href="javascript:setRating(4)">4</a>
<a href="javascript:setRating(5)">5</a>
</body>
</html>
框架内容:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="submit_rating.php" method="POST">
<input type="text" name="1" id="rate1" maxlength="1">
<input type="text" name="2" id="rate2" maxlength="1">
<input type="text" name="3" id="rate3" maxlength="1">
<input type="text" name="4" id="rate4" maxlength="1">
<input type="text" name="5" id="rate5" maxlength="1">
<input type="submit" value="Rate" style="display:none;" />
</form>
</body>
</html>
但更好的方法是使用ajax:
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
function setRating(rating) {
$.post('submit_rating.php', {
rating: rating
});
}
</script>
</head>
<body>
<a href="javascript:setRating(1)">1</a>
<a href="javascript:setRating(2)">2</a>
<a href="javascript:setRating(3)">3</a>
<a href="javascript:setRating(4)">4</a>
<a href="javascript:setRating(5)">5</a>
</body>
</html>