1

値はコメントと一緒に送信する必要があるため、値をPHP変数に一時的に保存する必要があります。ユーザーはコメントを入力せずに評価を送信することはできないので、これを作成することにしました。

PHPが値を計算するときに、変数がゼロの値を返すのはなぜですか?

私はこのコードを持っています:

<a href='#' onclick='rate(1); return false;' class='one-star'>1</a>

<script type="text/javascript">
     function rate (amnt){
     <?php
         $currentRating = amnt;
         $ratingImageWidth = $currentRating * 25;
         echo "alert($ratingImageWidth)";
     ?>
     }
</script>

ノート:

  • 0のアラートを出力します。
  • $currentRating変数がnullではないので、アラート関数に含めようとしましたが、正しい値を返します。
  • $currentRating変数をintに変換するためにこれらを試しました:

  • settype($currentRating, "integer");
  • (int)$currentRating;

    何も起こりませんでしたが、それでもゼロを返します。誰かがこれを解決する方法を知っていますか?助けてくれる人たちに感謝します。

  • 4

    4 に答える 4

    3

    PHPはサーバー上で実行されるため、JavaScriptは実際には次のようになります。

    function rate(amnt) {
        alert(0)
    

    最後に欠けていることを考えると、それがまったく機能するのは驚くべきこと}です...

    重要なのは、このようにPHPとJSを混在させることはできないということです。やってみませんalert(amnt*25)か?

    于 2012-08-19T21:56:45.083 に答える
    2

    Why are you trying to use PHP for this? Just do the calculation in javascript:

    <script type="text/javascript">
         function rate (amnt){
             var ratingImageWidth = amnt * 25;
             alert(ratingImageWidth);
         }
    </script>
    

    PHP runs on the server before the browser loads the page. Javascript runs in the client's browser after the page is loaded. The two can't call each other, because they're running in different places.

    于 2012-08-19T21:57:52.420 に答える
    2

    Php code run before it is sent to the user. Try to view the source of your processed page to understand how it works.

    于 2012-08-19T21:58:06.027 に答える
    1
    $ php << EOF
    <?php
    echo amnt * 25;
    EOF
    PHP Notice:  Use of undefined constant amnt - assumed 'amnt' in - on line 2
    
    Notice: Use of undefined constant amnt - assumed 'amnt' in - on line 2
    0
    

    このようにJavaScriptからPHPを実行することはできません。代わりにXHRを使用するか、JavaScriptに固執してください

    于 2012-08-19T21:57:03.383 に答える