如何正确地从php调用jquery函数?
更新: 我正在制作一个喜欢/不喜欢的投票程序,它按照我在Firefox3、Chrome和Safari中想要的方式工作。然而,它在Firefox4中似乎不起作用。例如,我制作了一个表单,在用户单击submit按钮并将数据发送到SQL表之后,应该播放jquery动画。这是完整的代码:如何正确地从php调用jquery函数?,php,javascript,jquery,call,Php,Javascript,Jquery,Call,更新: 我正在制作一个喜欢/不喜欢的投票程序,它按照我在Firefox3、Chrome和Safari中想要的方式工作。然而,它在Firefox4中似乎不起作用。例如,我制作了一个表单,在用户单击submit按钮并将数据发送到SQL表之后,应该播放jquery动画。这是完整的代码: <script type="text/javascript" src="opacity.js"></script> <link href="voter.css" rel="style
<script type="text/javascript" src="opacity.js"></script>
<link href="voter.css" rel="stylesheet" type="text/css" />
<?php
mysql_connect("","","") or die("Error connecting to db");
mysql_select_db("") or die("Error connecting to db");
$currAdd2 = $_SERVER["REQUEST_URI"];
$currAdd2 = substr($currAdd2, 0, -9);
$currAdd2 = substr($currAdd2, 11);
$numrow1 = mysql_query("SELECT * FROM rate WHERE apt = '$currAdd2' AND likes = 1 ");
$numlikes = mysql_num_rows($numrow1);
$numrow2 = mysql_query("SELECT * FROM rate WHERE apt = '$currAdd2' AND likes = 0 ");
$numdislikes = mysql_num_rows($numrow2);
$numrow3 = mysql_query("SELECT * FROM rate WHERE apt = '$currAdd2' ");
$totalvotes = mysql_num_rows($numrow3);
$likewidth = ($numlikes/($totalvotes+1)) * 400;
$dislikewidth = ($numdislikes/($totalvotes+1)) * 400;
?>
<form action= '<?php echo $_SERVER['PHP_SELF']; ?>'; method='post'>
<table align='left' width='500px' border='0' cellpadding='0' cellspacing='0'>
<? echo"
<tr>
<td>
<div id='blue'><input type='image' name='blue' id='likebutton' value='blue' src='../zrating/like.png'
/></div>
</td>
<td>
<b>$numlikes Like</b>
<div id='like' style='width:$likewidth'><div id='dis'></div></div><br>
</td>
</tr>
<tr>
<td>
<div id='red'><input type='image' name='red' id='dislikebutton' value='red' src='../zrating/dislike.png'
/></div>
</td>
<td>
<b>$numdislikes Dislike</b>
<div id='dislike' style='width:$dislikewidth'><div id='dis'></div></div><br>
</td>
</tr>
<tr>
<td>
</td>
<td>
<div id='success'><br><br>Thanks for voting!</div>
<div id='fail'><br><br>You are only allowed 1 vote per apartment.</div>
</td>
</tr>
</table>
</form>
";
//check ip address
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
if ( isset( $_POST['blue'] ) )
{
$currAdd = $_SERVER["REQUEST_URI"];
$currAdd = substr($currAdd, 0, -9);
$currAdd = substr($currAdd, 11);
$ipquery = mysql_query ("SELECT * FROM rate WHERE ip = '$ip' AND apt = '$currAdd' ");
$ipquery = mysql_fetch_assoc($ipquery);
$ipquery = $ipquery['ip'];
if ($ipquery == $ip)
{
echo "<script type='text/javascript' src='jquery.js'></script>";
echo "<script type='text/javascript'>
$(document).ready(function()
{
$('#fail').animate({width:300},1000);
$('#fail').animate({height:100},1000);
$('#fail').animate({width:300,height:100},1400);
$('#fail').fadeOut(5000);
}); </script>";
}
else
{
mysql_query ("INSERT INTO rate VALUES ('','$currAdd', '1', '$ip')");
$rankqry = mysql_query ("SELECT * FROM rank WHERE apt = '$currAdd' ");
$rankqry = mysql_fetch_assoc($rankqry);
$rankqry = $rankqry['rank'];
$rankupdate = $rankqry + 1;
if($rankupdate < 0)
{
$rankupdate = 0;
}
mysql_query ("UPDATE rank SET rank = '$rankupdate' WHERE apt = '$currAdd' ");
$likesqry = mysql_query ("SELECT * FROM rank WHERE apt = '$currAdd' ");
$likesqry = mysql_fetch_assoc($likesqry);
$likesqry = $likesqry['likes'];
$likesupdate = $likesqry +1;
mysql_query ("UPDATE rank SET likes = '$likesupdate' WHERE apt = '$currAdd' ");
echo "<script type='text/javascript' src='jquery.js'></script>";
echo "<script type='text/javascript'>
$(document).ready(function()
{
$('#success').animate({width:300},1000);
$('#success').animate({height:100},1000);
$('#success').animate({width:300,height:100},1400);
$('#success').fadeOut(5000);
}); </script>";
}
}
if ( isset( $_POST['red'] ) )
{
$currAdd = $_SERVER["REQUEST_URI"];
$currAdd = substr($currAdd, 0, -9);
$currAdd = substr($currAdd, 11);
$ipquery = mysql_query ("SELECT * FROM rate WHERE ip = '$ip' AND apt = '$currAdd' ");
$ipquery = mysql_fetch_assoc($ipquery);
$ipquery = $ipquery['ip'];
if ($ipquery == $ip)
{
echo "<script type='text/javascript' src='jquery.js'></script>";
echo "<script type='text/javascript'>
$(document).ready(function()
{
$('#fail').animate({width:300},1000);
$('#fail').animate({height:100},1000);
$('#fail').animate({width:300,height:100},1400);
$('#fail').fadeOut(5000);
}); </script>";
}
else
{
mysql_query ("INSERT INTO rate VALUES ('','$currAdd', '0', '$ip')");
$rankqry = mysql_query ("SELECT * FROM rank WHERE apt = '$currAdd' ");
$rankqry = mysql_fetch_assoc($rankqry);
$rankqry = $rankqry['rank'];
$rankupdate = $rankqry - 1;
if($rankupdate < 0)
{
$rankupdate = 0;
}
mysql_query ("UPDATE rank SET rank = '$rankupdate' WHERE apt = '$currAdd' ");
$dislikesqry = mysql_query ("SELECT * FROM rank WHERE apt = '$currAdd' ");
$dislikesqry = mysql_fetch_assoc($dislikesqry);
$dislikesqry = $dislikesqry['dislikes'];
$dislikesupdate = $dislikesqry +1;
mysql_query ("UPDATE rank SET dislikes = '$dislikesupdate' WHERE apt = '$currAdd' ");
echo "<script type='text/javascript' src='jquery.js'></script>";
echo "<script type='text/javascript'>
$(document).ready(function()
{
$('#success').animate({width:300},1000);
$('#success').animate({height:100},1000);
$('#success').animate({width:300,height:100},1400);
$('#success').fadeOut(5000);
}); </script>";
}
}
?>
我使用的是最新版本的jQuery(1.6.1),以下代码在我的服务器上运行得非常好:
<?php
echo '<html>
<head>
</head>
<body>
<div id="success">
Success! Success! Success! Success! Success! Success! Success! Success! Success! Success! Success! Success! Success! Success!
</div>
<script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(\'#success\').animate({width:300},1000);
$(\'#success\').animate({height:100},1000);
$(\'#success\').animate({width:300,height:100},1400);
$(\'#success\').fadeOut(5000);
});
</script>
</body></html>';
?>
编辑:这里有一个
第二次编辑:我想在我的答案中添加一些东西。如果没有上下文,很难判断这是否是一个问题,但是在调用jQuery之前,请确保您正在加载jQueryJS文件。您所做的动画调用可以在HTML块之外完成,但不能在加载jQuery JS文件之前完成。例如,这将起作用:
<?php
echo '<html>
<head>
</head>
<body>
<div id="success">
Success! Success! Success! Success! Success! Success! Success! Success! Success! Success! Success! Success! Success! Success!
</div>
<script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>
</body></html>';
if ( isset( $_POST['submit'] ) )
{
mysql_query ("INSERT INTO table VALUES ('','', '', '')");
echo "<script type='text/javascript'>
$(document).ready(function()
{
$('#success').animate({width:300},1000);
$('#success').animate({height:100},1000);
$('#success').animate({width:300,height:100},1400);
$('#success').fadeOut(5000);
}); </script>";
}
?>
如果它在除Firefox 4之外的所有浏览器上都工作,您可能需要查看以下线程:
数据是用ajax提交的吗 这是一个ajax请求还是一个常规页面请求?不,我不认为我以前使用过ajax。不过,您可以假设,如果它在除FF4之外的所有浏览器上都能正常工作,那么这并不取决于您的脚本。但这并不能解决你的问题。我希望如此!在我看来,Firefox是理想的浏览器。因为FF4不太确定。我想下一个更新是FF5,我已经加入了PHP标签,但是仍然不起作用。我会在我的操作中发布完整的代码。它在我的服务器上正常工作。您确定包含了正确的脚本吗?当我查看OP中的完整代码时,它显示了jquery.js
。这是jQuery文件的正确路径吗?我所做的只是复制表单和第一个if语句的动画,并将if语句更改为指向我服务器上的jQuery1.6.1js文件:您在Firefox4中运行了吗?我将js文件的源代码更改为,但仍然无法工作。在我发布的其他论坛上,他们提到我的脚本是无效的,因为我没有包含doctype、html标记、head标记和body标记,并且我正在“怪癖”模式下运行。然后我加入了doctype和标签,但问题没有解决。是的,我在FF4中运行了它,它运行得很好。这一定是你正在用你的代码做的事情。尝试使用我在其中编辑的代码,该代码的注释是“使用在线jQuery 1.6.1文件”,“使用在线jQuery 1.6.1文件”中的代码看起来像是一开始就被切断了?我将代码复制粘贴到以“/>”开头的帧中,并在Firefox4中播放动画。这对我的问题意味着什么?
<?php
echo '<html>
<head>
</head>
<body>
<div id="success">
Success! Success! Success! Success! Success! Success! Success! Success! Success! Success! Success! Success! Success! Success!
</div>
<script type="text/javascript">
$(document).ready(function()
{
$(\'#success\').animate({width:300},1000);
$(\'#success\').animate({height:100},1000);
$(\'#success\').animate({width:300,height:100},1400);
$(\'#success\').fadeOut(5000);
});
</script>
<script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>
</body></html>';
?>
<form action= '<?php echo $_SERVER['PHP_SELF']; ?>'; method='post'>
<table align='left' width='500px' border='0' cellpadding='0' cellspacing='0'>
<?
// Using online jQuery 1.6.1 file
echo"
<tr>
<td>
<div id='blue'><input type='image' name='blue' id='likebutton' value='blue' src='../zrating/like.png'
/></div>
</td>
<td>
<b>$numlikes Like</b>
<div id='like' style='width:$likewidth'><div id='dis'></div></div><br>
</td>
</tr>
<tr>
<td>
<div id='red'><input type='image' name='red' id='dislikebutton' value='red' src='../zrating/dislike.png'
/></div>
</td>
<td>
<b>$numdislikes Dislike</b>
<div id='dislike' style='width:$dislikewidth'><div id='dis'></div></div><br>
</td>
</tr>
<tr>
<td>
</td>
<td>
<div id='success'><br><br>Thanks for voting!</div>
<div id='fail'><br><br>You are only allowed 1 vote per apartment.</div>
</td>
</tr>
</table>
</form>
";
echo "<script type='text/javascript' src='http://code.jquery.com/jquery-1.6.1.min.js'></script>";
echo "<script type='text/javascript'>
$(document).ready(function()
{
$('#fail').animate({width:200},1000);
$('#fail').animate({height:100},1000);
$('#fail').fadeOut(5000);
}); </script>";
?>