如何正确地从php调用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

更新:

我正在制作一个喜欢/不喜欢的投票程序,它按照我在Firefox3、Chrome和Safari中想要的方式工作。然而,它在Firefox4中似乎不起作用。例如,我制作了一个表单,在用户单击submit按钮并将数据发送到SQL表之后,应该播放jquery动画。这是完整的代码:

<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>";
?>