我不是非常精通JavaScript / jQuery,但我设法编写了一个民意调查脚本,允许用户对民意调查进行投票并显示结果而无需刷新页面。这是我提出的jQuery代码:
$("#poll_yes").click(function(){
$("#poll_options").html(ajax_load);
$.post(
"query.php?module=vote",
{answer: "yes", pid: "<? display($_GET['username'], poll_id); ?>", to: "<?= $_GET['username'] ?>"},
function(responseText){
$("#poll_options").html(responseText);
},
"html"
);
});
$("#poll_no").click(function(){
$("#poll_options").html(ajax_load);
$.post(
"query.php?module=vote",
{answer: "no", pid: "<? display($_GET['username'], poll_id); ?>", to: "<?= $_GET['username'] ?>"},
function(responseText){
$("#poll_options").html(responseText);
},
"html"
);
});
这将得到页面上输入元素的id,并根据id然后将查询发送到query.php。然后,query.php将发回一个响应,然后该响应将显示在页面上。
这个脚本工作正常,但我遇到了另一个挑战。我需要在一个页面上显示多个民意调查。我正在使用php从SQL数据库生成民意调查,并想知道是否可以提取“answer:no”,“answer:yes”,“pid:$ id”,“to:$ username”的值等等。来自一个领域。如果可以,那么整个页面需要多个表格(对于每个民意调查)?或者一个表格足以满足多个输入?
答案 0 :(得分:1)
是的,您可以使用jquery
的.val()函数轻松地从表单字段中获取值$("#yourid").val();
答案 1 :(得分:1)
您可以为每个投票设置一个表单,并将pid作为输入包含type =“hidden”。然后,即使在是或否按钮(通过ID)上也不使用点击,您将在所有表单提交事件上附加回调。这也可以让你将两个函数合并为一个回调。
<script>
$("form.Poll > input[type='button']").click(function(e) {
e.preventDefault();
var form= $(this).closest("form");
alert("QuestionId:"+$("input[name='QuestionId']", form).val()+" clicked on:"+$(this).val());
});
</script>
<form method='POST' action='update.php' class='Poll'>
<input type='hidden' name='QuestionId' value='1'/>
Do you like jQuery?
<input type='button' name='Answer' value='Yes'/>
<input type='button' name='Answer' value='No'/>
</form>
<form method='POST' action='update.php' class='Poll'>
<input type='hidden' name='QuestionId' value='2'/>
Do you like AJAX?
<input type='button' name='Answer' value='Yes'/>
<input type='button' name='Answer' value='No'/>
</form>
<form method='POST' action='login.php'>
This form will fire like a normal form if you click on submit but it will not pass though the submit script defined above
<input type='submit' name='Answer' value='Login'/>
</form>
进行测试