当用户单击单选按钮时,我正在尝试更新MySQL数据库。我计划使用jQuery/Ajax来实现这一点。我在这个网站和其他网站上查看了我做错了什么,但我找不到答案。
第一页代码:
<script type="text/javascript" src="http://www.njacfootball.com/styles/autofill/jquery.js"></script>
<script type="text/javascript">
$(document).ready(UpdateRecord(gid, user, pick, wk) {
jQuery.ajax({
type: "POST",
url: "savePick.php",
data: {
gid: gid
usr: user
pk: pick
wk: wk
},
cache: false,
success: function(response)
{
alert("Pick successfully updated/saved");
}
}
});
</script>
[query mysql-db]
$i=0;
while ($i < $num) {
$date=mysql_result($result,$i,"dt");
$gid=mysql_result($result,$i,"SchedID");
$wk=mysql_result($result,$i,"SchedWk");
$away=mysql_result($result,$i,"away");
$time=mysql_result($result,$i,"ftime");
$home=mysql_result($result,$i,"home");
$hscore=mysql_result($result,$i,"hscore");
$ascore=mysql_result($result,$i,"ascore");
$status=mysql_result($result,$i,"status");
$upick=mysql_result($result,$i,"Pick");
$ucor=mysql_result($result,$i,"Correct");
$formatteddate = strftime("%A %b %d, %Y", strtotime($date));
?>
<input type="hidden" name="<? echo "gid_".$i; ?>" value="<? echo $gid; ?>" />
<table width="75%" border="0" align="center" style="border-width: 1px; border-color:#000000; border-style: solid;"><tr>
<th width="50%"><div align="left"><span class="style8"><? echo $formatteddate; ?> <? echo $time;?>M</span><br />
<th width="15%"><span class="style7">Who Wins?</span></th>
<th width="25%"><span class="style7">
<?
if ($status=='F') {
echo "Final"; }
else {
echo $status; } ?>
</span></th>
<th>Correct?</th>
</tr>
<tr>
<td><div align="center" class="style7">
<div align="right"><? print "$away"; ?></div>
</div></td>
<td> <div align="center" class="style7">
<? if ($upick==$away) {
if (($today==$date) && ($status=='')) {
if (($curtime>$time) && ($status=='')) { ?>
<input name="pick_<? echo $i; ?>" type="radio" id="pick_<? echo $i; ?>" value="<? print $away; ?>" checked="checked" disabled="disabled" />
<? } if (($curtime<$time) && ($status=='')) { ?>
<input name="pick_<? echo $i; ?>" type="radio" id="pick_<? echo $i; ?>" value="<? print $away; ?>" checked="checked" onClick="UpdateRecord(<? echo $gid; ?>, <? echo $userid; ?>, '<? echo $away; ?>', <? echo $wk; ?>);" /> <? }
}
else if (($today>$date) && ($status=='')) { ?>
<input name="pick_<? echo $i; ?>" type="radio" id="pick_<? echo $i; ?>" value="<? print $away; ?>" checked="checked" disabled="disabled" />
<? } else if (($today<$date) && ($status=='')) { ?>
<input name="pick_<? echo $i; ?>" type="radio" id="pick_<? echo $i; ?>" value="<? print $away; ?>" checked="checked" onClick="UpdateRecord(<? echo $gid; ?>, <? echo $userid; ?>, '<? echo $away; ?>', <? echo $wk; ?>);" />
<? } } else {
if (($today==$date) && ($status=='')) {
if (($curtime>$time) && ($status=='')) { ?>
<input name="pick_<? echo $i; ?>" type="radio" id="pick_<? echo $i; ?>" value="<? print $away; ?>" disabled="disabled" />
<? } if (($curtime<$time) && ($status=='')) { ?>
<input name="pick_<? echo $i; ?>" type="radio" id="pick_<? echo $i; ?>" value="<? print $away; ?>" onClick="UpdateRecord(<? echo $gid; ?>, <? echo $userid; ?>, '<? echo $away; ?>', <? echo $wk; ?>);" /> <? } }
else if (($today>$date) && ($status=='')) { ?>
<input name="pick_<? echo $i; ?>" type="radio" id="pick_<? echo $i; ?>" value="<? print $away; ?>" disabled="disabled" />
<? } else if (($today<$date) && ($status=='')) { ?>
<input name="pick_<? echo $i; ?>" type="radio" id="pick_<? echo $i; ?>" value="<? print $away; ?>" onClick="UpdateRecord(<? echo $gid; ?>, <? echo $userid; ?>, '<? echo $away; ?>', <? echo $wk; ?>);" />
<? } }
if ($status<>'') {
if ($upick==$away) {
?><input name="pick_<? echo $i; ?>" type="radio" id="pick_<? echo $i; ?>" value="<? print $away; ?>" checked="checked" disabled="disabled" /><?
}
else {
?><input name="pick_<? echo $i; ?>" type="radio" id="pick_<? echo $i; ?>" value="<? print $away; ?>" disabled="disabled" />
<? }
}
?>
</div></td>
<td> <div align="center"><span class="style7"><? echo $ascore; ?></span></div></td>
<td>
<div align="center">
<?
if (($status=='F') && ($ucor=='Y') && ($upick==$away)) {
?>
<img src="/images/check.jpg" alt="yes" height="21px" />
<?
}
else if (($status=='F') && ($ucor=='N') && ($upick==$away)) {
?>
<img src="/images/x.jpg" alt="no" height="21px" />
<?
}
?>
[代码继续]
第2页代码:
{connection info}
include ("../../../styles/variables.php");
$gameid = $_POST["gid"];
if (!$gameid) return;
$usr = $_POST["usr"];
if (!$usr) return;
$upk = $_POST["pk"];
if (!$upk) return;
$weeknumb = $_POST["wk"];
if (!$upk) return;
$query="SELECT UserID, Week, GameID, Pick FROM $picktable WHERE GameID='".$gameid."' AND UserID='".$usr."'";
$result=mysql_query($query) or die(mysql_error());
$n=mysql_numrows($result);
if ($n==0) {
$q1="INSERT INTO $picktable (GameID, UserID, Week, Pick) VALUES ('".$upk."','".$usr."','".$weeknumb."','".$pick."')";
$result1=mysql_query($q1) or die(mysql_error()); }
else {
$old_pick=mysql_result($result,0,"Pick");
if ($old_pick<>$upk) {
$q2="UPDATE $picktable SET Pick='".$upk."' WHERE GameID='".$gameid."' AND UserID='".$usr."'";
$result2=mysql_query($q2) or die(mysql_error()); }
mysql_close();
?>
使用firebug,当点击单选按钮时,我得到以下错误:
ReferenceError:UpdateRecord未定义[Break On This Error]
UpdateRecord(448,24,"团队",2);
如有任何帮助,我们将不胜感激。谢谢
将UpdateRecord移动到DOM之外。然后将处理程序连接到文档就绪内部的单选按钮。
var UpdateRecord = function(gid, user, pick, wk) {}
$(function(){
$('input[type=radio]').on( "change" , function(){
UpdateRecord(....)
});
});
如果没有HTML,我们将无法提供太多帮助,因为我们不知道gid, user, pick, wk
是在哪里定义的。你需要在类似的HTML中输出它们
<input class='ajaxSubmit' type="radio" gid="23892" user="myUser" pick="myPick" wk="myWk"/>
然后在点击时执行提交ajax:
$(document).ready(function(){
$('.ajaxSubmit').on('click',function(){
var gid = $(this).attr('gid');
var user = $(this).attr('user');
var pick = $(this).attr('pick');
var wk = $(this).attr('wk');
$.ajax({
type: "POST",
url: "savePick.php",
data: {
gid: gid
usr: user
pk: pick
wk: wk
},
cache: false,
success: function(response)
{
alert("Pick successfully updated/saved");
}
}
});
});
});