0

calc.php のようなクライアント コード名

<html>
<head>
</head>
</body>

<form action="TESTC.php" method="POST">


<input type="text" name="num1">

<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>


<input type="text" name="num2">
<input type="submit">
</form>

</body>
</html>

PHP コードが実行されるサーバー側は TESTC.php です。

<?php

if(isset($_POST['num1']) && isset($_POST['num2']) && isset($_POST['operator'])) {

    $num1 = $_POST['num1'];
    $num2 = $_POST['num2'];
    $operator = $_POST['operator'];

    if (!empty($num1) && !empty ($num2) && !empty($operator)) {
    echo 'ok';
} else {
    echo 'Fill in all fields. ';

    }
}

 if ($operator=='+'){
        echo $num1."+".$num2."=<b>".($num1+$num2)."</b>";
    }
     if ($operator=='-'){
        echo $num1."-".$num2."=<b>".($num1-$num2)."</b>";
    }
     if ($operator=='/'){
        echo $num1."/".$num2."=<b>".($num1/$num2)."</b>";
    }
     if ($operator=='*'){
        echo $num1."*".$num2."=<b>".($num1*$num2)."</b>";
    }   
?>

私はこれを機能させていますが、サーバー側でのみこのコードを出力できます.num1とnum2の2つのフォームの出力を取得してクライアント側ページ「newCalc.php」に出力する方法が正しくわかりません. フォームが送信されたら、これを 1 ページに出力する方法と TESTC.php に撮影する方法を誰かが説明できますか? html コードと php の両方を使用して、1 つのページで動作する html フォームと php 電卓コードを取得できます。誰かが助けてくれますか?

4

2 に答える 2

1

申し訳ありませんが、それはまさにあなたがしなければならない方法です。

php はクライアント側のサービスではありません。サーバーへの投稿や新しいページのレンダリングを行わずに html を更新する場合は、javascript が必要になります。

例:

// form_template.php
<html><!-- show your form on this page -->
    <form action="calc.php">
    <?php if ($result) echo $result; ?>

// calc.php
<?php // get your POST stuff
    $result = $whatever;
    require_once('form_template.php');

// form.php
<?php // Do defaults here
    $result = false;
    require_once('form_template.php');
于 2013-02-25T22:41:24.313 に答える
0

申し訳ありませんが、それは機能しません。あなたがすべきことは、phpスクリプトにajaxリクエストを送信することです。アップデートにより、クエリしてエコーした回答が返されます。最初は難しいように思えるかもしれませんが、ajaxはおそらく私が今までに学んだ中で最も有用な「言語」です。私は嫌いw3schools.comですが、ajaxとPHPとの関係についての非常に優れたチュートリアルがあります。ここで見つけることができます。

于 2013-02-25T23:15:23.597 に答える