2

送信ボタンのクリックイベントで出力を取得するためにAjaxとjQueryを使用しています

私は2つのファイルを持っています

  1. Index.php(jQuery & Ajax コードを含む)
  2. actionfile.php(Ajaxコードで送信されたデータを抽出してファイルに格納するphpIndex.phpファイル)

Index.php:

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>

</head>
<body>

<form name="myform" method="post">
<input type="text" name="txt1" id="txt1" value="121212"/>
<input type="submit" value="submit" id="submit" name="submit" />
</form>

<script> 
$("#submit").click(function() {
    var txt =document.getElementById('txt1').value;  //textbox value
    alert(txt);
    var txt1 = "txt1="+txt;
    alert(txt1);
    $.ajax({
            type: "POST",
            url: "actionfile.php",
            data:txt1,
            success: function() {
               alert("success");
            }
        });
    });
</script>
</body>

</html>

そして actionfile.php:

<?php
    error_reporting(E_ALL);
    $map=$_POST['txt1'];
    $fp=fopen("file.txt","w");
    fwrite($fp,$map);
    fclose($fp);
?>

問題は、コードを削除すると$("#submit").click(function()ajaxが正常に動作することです。つまり、ページがロードされたときにデータを送信します(テキストボックスにデフォルト値を指定した場合)。コードを$("#submit").click(function()そのままにしておくと、送信ボタンが押されたときにのみ関数が呼び出されますが、この場合は AJAX が失敗します。

コードはhttp://www.code.guru99.com/kishoreで入手できます。

この問題の原因は何ですか?

4

4 に答える 4

1

これを試して:

    $("form").submit(function(e){
        e.preventDefault();

        var txt =document.getElementById('txt1').value;  //textbox value
        alert(txt);
        var txt1 = "txt1="+txt;
        alert(txt1);
        $.ajax({
                type: "POST",
                url: "actionfile.php",
                data:txt1,
                success: function() {
                   alert("success");

                   //here you can simulate click submit
                }
            });
        });
      });
于 2013-06-19T13:51:49.417 に答える