0

ajaxを使用してフォームデータをphpに渡し、それをphpに実装して合計、除算、およびその他の算術メソッドを計算する必要があります。学習しようとしているが、多くの疑問を抱いているajax呼び出しは初めてです....それは大きな助けになるでしょう誰かがこれで私を助けてくれたら

index.html

<script type="text/javascript">
$(document).ready(function(){

  $("#submit_btn").click(function() {
         $.ajax({

      url: 'count.php',

    data: data,
        type: 'POST',
        processData: false,
        contentType: false,
        success: function (data) {
            alert('data');
        }
     })

});
    </script>
</head>

<form name="contact" id="form" method="post" action="">

      <label  for="FNO">Enter First no:</label>
      <input type="text" name="FNO" id="FNO" value=""  />
label for="SNO">SNO:</label>
                        <input type="text" name="SNO" id="SNO" value="" />

      <input type="submit" name="submit" class="button" id="submit_btn" value="Send" />

  </form>

count.phpで実装したい

<?php
$FNO = ($_POST['FNO']);
$SNO=($_post['SNO']);


$output=$FNO+$SNO;
echo $output;

?>

(最初のページ index.html ではなく count.php ページに出力を表示したい) 事前にご協力いただきありがとうございます。

4

4 に答える 4

1

コードにはいくつか問題があります。詳細から実際のエラーまで。

Javascript を見ると、うまくいきません。変数dataを設定せずに使用します。エラーを表示するには、ブラウザーのJavascript コンソールを開く必要があります。ググってください。

また、javascript は必要以上に複雑です。Ajax リクエストは特殊なものですが、この例では 2 つの POST 変数を設定するだけで済みます。メソッドは、jQuery.post()より少ないコードでそれを行います。

<script type="text/javascript">
$(document).ready(function(){
  $("#form").on("submit", function () {
    $.post("/count.php", $(this).serialize(), function (data) {
      alert(data);
    }, "text");
    return false;
  });
});
</script>

HTML については問題ありませんが、略語ではなく実際の単純な単語を使用して入力フィールドに名前を付ける (つまりname="") ことをお勧めします。

<form method="post" action="/count.php" id="form">
  <label  for="number1">Enter First no:</label>
  <input type="number" name="number1" id="number1">
  <label for="number2">Enter Second no:</label>
  <input type="number" name="number2" id="number2">
  <input type="submit" value="Calculate">
</form>

Javascript と同様に、PHP は機能しません。PHP は、ほとんどのプログラミング言語と同様に、変数名について非常にうるさいです。つまり、$_POST$_postは同じ変数ではありません! $_POSTPHP では、 POST 変数にアクセスするために を使用する必要があります。

また、自分で制御できないデータ、つまり基本的には外部から来るものを信頼してはいけません。PHP コードは、(エラーが有効になっている場合、ファイル システム上のファイルの場所を表示することを除けば) あまり害を及ぼすことはありませんが、POST 変数をサニタイズして検証する必要があります。これは、filter_input関数を使用して行うことができます。

<?php
$number1 = filter_input(INPUT_POST, 'number1', FILTER_SANITIZE_NUMBER_INT);
$number2 = filter_input(INPUT_POST, 'number2', FILTER_SANITIZE_NUMBER_INT);
if ( ! ctype_digit($number1) || ! ctype_digit($number2)) {
  echo 'Error';
} else {
  echo ($number1 + $number2);
}

全体として、コードの書き方にもっと注意する必要があると思います。コードなどの小さなエラーにより、すべてが崩壊する可能性があります。エラーを検出する方法を理解してください (jQuery ではコンソールを使用する必要があり、PHP ではエラー メッセージをオンにする必要があり、HTML ではバリデーターを使用する必要があります)。

于 2013-04-09T23:54:05.857 に答える
0

以下のようにして、フォームデータを ajax 呼び出しで渡すことができます。

var formData = $('#client-form').serialize();

$.ajax({

URL: 「www.xyz.com/index.php?」+ フォームデータ、

タイプ: 'POST',

データ:{

}、

成功: 関数(データ){},

エラー: 関数 (データ){}、})

于 2017-05-10T05:40:50.737 に答える