0

更新せずにフォームを送信できるように、フォームに ajax を追加しようとしていますが、php echo コマンドが機能しません。ajax を取り出すと正常に動作しますが、送信時に更新されます。それらを連携させようとするケースだと思います。私は今ajaxを学んでいるので、それについてはあまり知りません。どこが間違っているのか見てみてください

<script type="text/javascript"
 src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>   
<script type="text/javascript">
    $(function() {
        $('form').bind('submit', function(){
            $.ajax({
                type: "POST",
                url: "ajax.html",
                data: $("form").serialize(),
                success: function() {
                    alert("form was submitted");
                }
            });
            return false;
        });
    });
</script>

<?php
    if(isset($_POST['submit'])){
          $a=$_POST['a'];
          $b=$_POST['b'];

           echo $a.$b;
       }
?>

<html>
 <form method='POST'>
    first name:<input type="text" name="a">
    last name: <input type="text" name="b">
               <input type='submit' name='submit'>
  </form>
</html>
4

4 に答える 4

3

それを見ると、「ajax.html」に ajax リクエストを送信しており、「ajax.html」内に php タグがあり、php タグが機能するように名前を「ajax.php」に変更する必要があります。

于 2013-01-09T15:40:57.643 に答える
1
  1. .htmlを.phpに変更しないと、phpインタープリターによって解析されません。もちろん、.htmlファイルを解析するようにapacheを構成していない限り。
  2. 上記のページにajaxリクエストを送信していますか?$a。$bのエコー以上のものが得られることをご存知ですか?html部分も返送されます。別のスクリプトを作成して、フォームタグなしで投稿することをお勧めします。
  3. ajaxリクエストでは、次のことを行う必要がありますconsole.log( data )alert( data )
于 2013-01-09T15:48:12.383 に答える
1

ajax応答がその情報を取得するため、エコーされたPHPコードが表示されないことに注意する価値があります。これは、ajax呼び出しの結果を表示していないため、ajaxの使用方法の良い例ではありません。このようなものの方が理にかなっています:

「ajax.php」PHPファイル:

<?php
    if(isset($_POST['submit']))
    {
       $a=$_POST['a'];
       $b=$_POST['b'];
       //Add user name to database here or something
       die($a." ".$b); //Prevents anything after this from being returned
    }
?>

<script type="text/javascript"
 src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>   
<script type="text/javascript">
    $(function() {
        $('form').bind('submit', function(){
            $.ajax({
                type: "POST",
                url: "ajax.php",
                data: $("form").serialize(),
                success: function(data) {
                    alert("Hello " + data);
                }
            });
            return false;
        });
    });
</script>

<html>
 <form method='POST'>
    first name:<input type="text" name="a">
    last name: <input type="text" name="b">
               <input type='submit' name='submit'>
  </form>
</html>
于 2013-01-09T15:48:12.257 に答える