我有一个显示民意调查流的页面(每个民意调查最多有4个答案选项)。此页面是从数据库动态生成的,因此它会从mysqli_fetch_array中提取每个轮询问题和选项。
我正在努力解决的问题是如何让用户在民意调查中投票。我将每个轮询都作为自己的表单(使用选项的单选按钮)并将其设置为单击其中一个单选按钮时提交表单的位置。问题是,它最终会在页面上提交每个答案选项(我假设因为它来自$ row ['option'])。
实施此类事情的最佳策略是什么?只提交投票的投票?如果可能,想使用ajax。
答案 0 :(得分:0)
你能用pls显示你的html代码吗?你如何解雇你的click_event?
<强> Ajax的与-jQuery的:强>
<!-- in your head-section include jQuery -->
<head>
<script src ="//code.jquery.com/jquery-1.10.2.min.js"> </script>
</head>
<!-- your forms -->
<form>
<input type="radio" name="radio1" value="foo"> Foo<br>
</form>
<form>
<input type="radio" name="radio2" value="bar"> Bar<br>
</form>
<form>
<input type="radio" name="radio3" value="foobar"> Foobar
</form>
<script >
//wait until document is ready
$(function() {
//when these are the only radio-buttons on page you can select all and bind an click-event to it,
//else add a class to all radio-buttons and select like: $(".your_class")
$(":radio").click(function() {
//get the url from the action-attribute of the form
var value = $(this).val(),
radioName = $(this).attr("name");
$.ajax({
type: "POST",
url: "/your_file.php",//the URL to your php-File
data: { name: radioName, data: value}
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
});
</script>
在您的php文件中,您现在可以使用$ _POST ['name']和$ _POST ['data']正常保存POST。 您在此文件中输出的所有内容都将是警报中“msg”的输出(在ajax-request中)。 你也可以输出一个json-string,如:
echo json_encode(array("error" => TRUE, "text" => "Data could not be saved!"));
然后在你的完成函数中执行:
if(msg.error)
alert("ERROR: " + msg.text);
else
alert("Your data has been saved :)");