Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery显示PHP函数_Php_Jquery - Fatal编程技术网

JQuery显示PHP函数

JQuery显示PHP函数,php,jquery,Php,Jquery,我整天都在尝试在我的脚本中添加一些新功能,例如,我希望能够显示在我的星级图像下的平均投票率和投票率,如下面示例中的一些内容 ********** 9.8/10 (1160 vote cast) 我什么都试过了,遇到了一个又一个新问题。例如,现在我使用的每个新PHP函数都会相互干扰 例如,我的第一个PHP函数getRating()本身工作正常,但与第二个PHP函数evaluatingText()一起使用时,它将无法正确显示而我的第一个PHP函数由于显示的平均评级完全错误而弄乱了我的第二个PHP函

我整天都在尝试在我的脚本中添加一些新功能,例如,我希望能够显示在我的星级图像下的平均投票率和投票率,如下面示例中的一些内容

**********
9.8/10 (1160 vote cast)
我什么都试过了,遇到了一个又一个新问题。例如,现在我使用的每个新PHP函数都会相互干扰

例如,我的第一个PHP函数
getRating()
本身工作正常,但与第二个PHP函数
evaluatingText()一起使用时,它将无法正确显示
而我的第一个PHP函数由于显示的平均评级完全错误而弄乱了我的第二个PHP函数。例如,它实际上显示了两次该值

那么,如何使我的两个PHP函数与JQuery函数一起正确工作,JQuery函数正确地显示我的第一个PHP函数
getRating()
,以便JQuery函数可以相应地显示这两个PHP函数?有人能帮我举个例子吗

下面是我的PHP函数

// function to retrieve
function getRating(){
    $sql= "select * from vote";
    $result=@mysql_query($sql);
    $rs=@mysql_fetch_array($result);
    // set width of star
    $rating = (@round($rs['value'] / $rs['counter'],1)) * 10; 
    echo $rating;
}

// function to retrieve average rating and votes
function evaluateRatingText(){
    $sql= "select * from vote";
    $result=@mysql_query($sql);
    $rs=@mysql_fetch_array($result);
    $avg = (@round($rs['value'] / $rs['counter'],1)) * 10;
    $votes = $rs['counter'];
    echo $avg . "/10  (" . $votes . " votes cast)";
}
下面是JQuery函数

    // get current rating
    getRating();
    // get rating function
    function getRating(){
        $.ajax({
            type: "GET",
            url: "update.php",
            data: "do=getrate",
            cache: false,
            async: false,
            success: function(result) {
                // apply star rating to element
                $("#current-rating").css({ width: "" + result + "%" });
            },
            error: function(result) {
                alert("some error occured, please try again later");
            }
        });
    }
HTML标记

<ul class='star-rating'>
  <li class="current-rating" id="current-rating"></li>
  <li class="rating-text" id="rating-text"></li>
  <span id="ratelinks">
  <li><a href="javascript:void(0)" title="1 star out of 10" class="one-star">1</a></li>
  <li><a href="javascript:void(0)" title="2 stars out of 10" class="two-stars">2</a></li>
  <li><a href="javascript:void(0)" title="3 stars out of 10" class="three-stars">3</a></li>
  <li><a href="javascript:void(0)" title="4 stars out of 10" class="four-stars">4</a></li>
  <li><a href="javascript:void(0)" title="5 stars out of 10" class="five-stars">5</a></li>
  <li><a href="javascript:void(0)" title="6 stars out of 10" class="six-star">6</a></li>
  <li><a href="javascript:void(0)" title="7 stars out of 10" class="seven-stars">7</a></li>
  <li><a href="javascript:void(0)" title="8 stars out of 10" class="eight-stars">8</a></li>
  <li><a href="javascript:void(0)" title="9 stars out of 10" class="nine-stars">9</a></li>
  <li><a href="javascript:void(0)" title="10 stars out of 10" class="ten-stars">10</a></li>
  </span>
</ul>
如果您正在使用

echo $rating;
要从10颗星中打印评级,只需回显使用此评级和投票数的字符串:

echo $rating . "/10  (" . $votesCast . " votes cast)";
看起来您就快到了。

如果您正在使用

echo $rating;
要从10颗星中打印评级,只需回显使用此评级和投票数的字符串:

echo $rating . "/10  (" . $votesCast . " votes cast)";
看起来你就快到了。

加上这个

<ul class='star-rating'>
  <li class="current-rating" id="current-rating"></li>
  <li class="rating-text" id="rating-text"></li>
  <span id="ratelinks">
  [...]
  </span>
</ul>
加上这个

<ul class='star-rating'>
  <li class="current-rating" id="current-rating"></li>
  <li class="rating-text" id="rating-text"></li>
  <span id="ratelinks">
  [...]
  </span>
</ul>

其中一个问题是在javascript
success
回调中的这一行:

$("#rating-text").text(evaluateRatingText());
看起来您希望它能调用PHP函数,但事实并非如此。它实际上再次调用相同的javascript函数(发送另一个请求)

您可能希望将其更改为:

$("#rating-text").text(result);

其中一个问题是在javascript
success
回调中的这一行:

$("#rating-text").text(evaluateRatingText());
看起来您希望它能调用PHP函数,但事实并非如此。它实际上再次调用相同的javascript函数(发送另一个请求)

您可能希望将其更改为:

$("#rating-text").text(result);

php函数不会检索数据,而是立即打印出来

您应该使用“return”而不是“echo”

它之所以显示双重评级,是因为这两个函数都响应平均评级,只有EvaluationText附加了更多的数据


在混合使用php和javascript之前,最好先学习一些关于函数、变量和处理返回值的基本php教程。

您的php函数不会检索数据,而是立即打印出来

您应该使用“return”而不是“echo”

它之所以显示双重评级,是因为这两个函数都响应平均评级,只有EvaluationText附加了更多的数据


在混合使用php和javascript之前,您最好先学习一些关于函数、变量和处理返回值的基本php教程。

除了HTML问题(包括包装一个li和一个奇怪的文本与列表的混合)你应该做一个返回函数加上一个计算函数来处理这样的事情

PHP

JS


如果您不确定如何在Javascript中进行平均,只需让PHP返回3个值,而不是2个值。

除了HTML问题(包含一个li和一个奇怪的文本与列表的混合),您应该创建一个返回函数加上一个计算函数来处理这样的整个问题

PHP

JS


如果您不确定如何在Javascript中进行平均,只需让PHP返回3个值,而不是2个值。

您不应该使用@运算符(或者至少,只有在严格必要时才使用@);;请看以下几个原因——最重要的一个原因是,它将防止您看到可能发生的任何错误(这意味着调试将更加困难),因此在运行它时会发生什么?您也不应该使用
async:false
(除非在一些非常特殊的情况下).现在什么也没发生,我想它只是循环,甚至没有显示我要添加的新功能。如果我去掉了我一整天都在使用的新功能,一切都会好起来的。除了这个特殊的问题:抑制错误真的会在以后困扰你。你不应该使用@operator(或者至少,只有在严格必要的情况下才使用它);;请看以下几个原因——最重要的一个原因是,它将防止您看到可能发生的任何错误(这意味着调试将更加困难),因此在运行它时会发生什么?您也不应该使用
async:false
(除非在一些非常特殊的情况下).现在什么也没发生,我想它只是循环,甚至没有显示我要添加的新功能。如果我去掉了我一整天都在使用的新功能,一切都会好起来。除了这个特殊的问题:抑制错误会让你以后很难受。这在某种程度上修复了它,但现在它把我的星级图像搞砸了。并显示我的平均评分5555/10。有没有解决方法?谢谢。这有点修复了它,但现在它弄乱了我的星级图像。并显示我的平均评分5555/10。有没有解决方法?谢谢你。