2016-10-15 4 views
1

PHPで2つ以上の商を合計したい jsプロンプトで2桁のユーザー入力を得ようとしましたが、PHP変数に値を割り当てようとしました。 しかし、商は難しいです。任意の最高のソリューションはありますか?js変数からphp varibleに値を代入した後、算術演算ができないのはなぜですか?

のみJavaScriptを使用して
<?php 

function quotient($a, $b) { 
    return $a/$b; 
} 
function output($a, $b, $quo) { 
    echo "The quotient of ". $a. " and ". $b. " is " . $quo. "<br>"; 
} 

$sum = 0; 
$quo = 0; 
for ($i = 0; $i < 2; $i++) { 
    echo "<script> 
    var a = window.prompt('please enter first digit'); 
    a = parseInt(a); 

    var b = window.prompt('please enter second digit'); 
    b = parseInt(b); 

    </script>"; 

    $a = "<script> 
       document.write(a); 
     </script>"; 
    $b = "<script> 
      document.write(b); 
     </script>"; 

    $quo = quotient($a, $b); 

    $sum += $quo; 
    output($a, $b, $quo); 
} 

echo "The sum of " . $i . " quotient is " . $sum; 
?> 
+0

JavaScriptのみを使用してください。コードを簡単に作成できます。 –

+0

私は知っている、jsと簡単ですが、私はPHPで欲しい – Amir

+0

あなたはプロンプトからの入力を取るしたいですか? –

答えて

0

<script type="text/javascript"> 
    var sumOfQuotient = 0; 
    for(var i=0 ; i<2 ;i++){ 
     var a = parseInt(prompt("Enter first digit")); 
     var b = parseInt(prompt("Enter second digit")); 
     if(b != 0){ 
      document.write("First digit:"+a+" Second Digit:"+b+"<br>"); 
      document.write("Quotient:"+parseInt(a/b)+"<br>"); //if you want quotient to be integer, else remove parseInt() 
      sumOfQuotient += parseInt(a/b); 
     } 
    } 
    document.write("Sum of quotient: "+sumOfQuotient); 
</script> 

をPHPを使用して:作業を行います

二つのファイル:

  1. home.phpは -

  2. 入力を受け取り
  3. process.php - 操作を実行する

私はデモ用に2つの入力を行っています。あなたは

Home.php好きなだけをとることができます。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    var firstDigits = new Array(); 
    var secondDigits = new Array(); 
    for(var i=0 ; i<2 ;i++){ 
     firstDigits[i] = parseInt(prompt("Input #"+(i+1)+" Enter first digit")); 
     secondDigits[i] = parseInt(prompt("Input #"+(i+1)+" Enter second digit"));  
    } 
    $.ajax({ 
     data:{a:firstDigits,b:secondDigits}, 
     method: "POST", 
     url:"process.php", 
     success: function(msg){ 
      alert("Sum of quotient: "+msg); 
     } 
    }); 
</script> 

process.php:

<?php 
    $a = $_POST['a']; 
    $b = $_POST['b']; 
    $sumOfQuotient = 0; 
    for($i=0;$i<count($a);$i++){ 
     if($b[$i] != 0) $sumOfQuotient += $a[$i]/$b[$i]; 
    } 
    echo (int)$sumOfQuotient; 
?> 

が、私はそれに役立つことを願っています。

+0

はい、PHPで私はループで入力を取得する方法を知らないので、 – Amir

2

JSからPHPに変数を渡すようなことはありません。 JSとPHPは異なるマシン上で実行されており、直接的な双方向通信は不可能です。

JSとPHPの間でデータをやり取りするにはさまざまな方法がありますが、まずコードのどの部分がどのコンピュータで処理されているか、各変数のスコープは何かを認識する必要があります。

PHPはサーバ上で動作します。 JSはクライアント上のWebブラウザで実行されます(サーバー上でJSを実行する方法がありますが、それはあなたの場合ではありません)。変数は共有されません。

PHPからJSへデータを渡す最も簡単な方法は、JSコードを生成してクライアントに送信することです。ここで、Webブラウザはそれを解釈します。 JSONファイルを生成したり、HTML要素(またはその属性)を作成することもできます。そのためには、あなたがPHPでシンプルechohtmlspecialchars()またはjson_encode()が必要になります。

<?php 
$a = 123; 
// generate JS code in <script> element: 
echo "var a = (", json_encode($a), ");\n"; 
// generate HTML elements: 
echo "<span>", htmlspecialchars($a), "</span>\n"; 
?> 

PHPにJSからデータを渡すには、あなたは、クライアントからサーバにHTTPリクエストを送信する必要があります。サーバー上でPHPの新しいインスタンスが実行され、利用可能なデータがあります。

最も簡単な方法は、HTMLフォームを送信することです。データは$_POSTおよび/または$_GET超大域変数を使用して渡されます。または、JS内でXmlHttpRequestを使用して、別のページに移動することなくHTTPリクエストを呼び出すことができます。いくつかのコード行でこれを行うには、多くの場合、nice librariesがあります。通常、サーバーにデータを送信するためにプレーンHTML形式を使用する方が良いですが、ユースケースの中にはより多くの対話性が必要なものもあります。

リアルタイム双方向通信を可能にするかなり複雑な方法は、Websocketsの使用を必要とします。あなたはほとんどそれを必要としないでしょう。

+0

私は質問のための2 upvotesとこの良い答えの投票を参照してください。 – BlackBurn027

+0

良い説明。 –

+0

ありがとう私は多くを学んだ – Amir

関連する問題