我创建了一个简单的民意调查,该民意调查将使用 AJAX JSON jQuery 发送到服务器端并得到回显。它无法正常工作。请告诉我哪里出错了。我是 jQuery 和 JSON 的新手。
JavaScript
<script>
function sendVote(){
var voteS = $("#vote").val();
$(document).ready(function(){
$("#vote").click(function(){
$.ajax({
type : "POST",
url : "poll_vote.php",
data : "vote="+voteS,
dataType: "JSON",
success : function(data){
concole.log("Data Submitted " + data);
$("#result").html(data);
},
complete :function(data){},
error : function(error, data){
console.log("Error. not Working" + error+" "+ data);
alert("Error. not Working"+ error);
$("#result").html(error+ data);
}
});
});
});
}
</script>
PHP
<?php
$vote = $_POST['vote'];
if (isset($vote)) {
$list = array('vote' => $vote);
$encode = json_encode($list);
echo $encode;
}
?>
HTML
<body>
<h3> What is your Gender? </h3>
<form>
Male :
<input type = "radio" name = "vote" value= "0" id="vote" onclick = "return sendVote()" />
<br />
Female :
<input type = "radio" name = "vote" value = "1" id="vote" onclick = "return sendVote()">
</form>
<p><div id= "result"></div></p>
</body>
最佳答案
您选择了不明确的选择器,使用了具有非唯一 ID 的无效标记。
更改此:
var voteS = $("#vote").val();
至:
var voteS = $("input[name='vote']:checked").val();
并且,正如您通过 dataType: "JSON"
指定的那样,您期望在 success 部分中有一个 json 对象,因此您只需在此处访问该对象的 vote
属性:
$("#result").html(data.vote);
同样成功的是,你有拼写错误:concole.log
而不是console.log
在您的 PHP 文件中,您应该检查是否设置了 $_POST['vote']
:
if (isset($_POST['vote'])) {
$vote = $_POST['vote'];
$list = array('vote' => $vote);
$encode = json_encode($list);
echo $encode;
}
并从此函数中删除 $(document).ready(function(){
),在您实际调用该函数所在的函数之前,它不会将此事件绑定(bind)到该元素。
关于javascript - 使用 AJAX jQuery 进行投票,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29704204/