0

したがって、method = "POST" enctype = "multipart / form-data"を含むこのフォームページがあり、アクションをこのphpファイルに設定します。このphpファイルでは、phpコードをタグで囲み、phpの直後にjavascriptコードをタグで囲んでいます。フォームを送信するときに、phpコードとjavascriptコードの両方が実行されるようにしたいと思います。これは、コンピューターでローカルにホストしている場合は正常に機能します。ただし、ホストする必要のあるサーバーでは機能しないようです。javascriptコードの最初の行にalert()を追加しましたが、実行されません。なぜこれが起こっているのか/私がこれをデバッグできる方法を誰かが知っていますか?どうもありがとう。

(これは重要ではないと思いますが、ページが変更されないように、フォームがiframeに送信されています)

-フォームの送信に使用されるDjQuery:

          $("#saved_form").submit(function(e)
            {
            e.preventDefault();
            this.submit();
            ... }

以下はphp/javascriptコードです。

  <?php
  include 'readFile2.php';
  readText();
  ?>
  <script type='text/javascript'>
  alert("oh no");
  var errors = "<?= $_POST['error'] ?>";
  parent.window.saveLoad = 0;
  //checks if text file is entered
  if (errors == 1) 
  {
   alert("Please enter a text file");
  }
  else if (errors == 2)
  {
  alert("File must be text");
   }
  else
  {
  parent.window.saveLoad = 1;
  parent.window.saved_form = <?php echo json_encode($savedForm); ?>;
  }
  </script>
4

1 に答える 1

0

これは、php ページへの Ajax 呼び出しとしてより適切に実行されます。

例えば:

$('#submitbtn).click(function(event){
     event.preventDefault();

    $.ajax({
         url: "readFile2.php",                              
         timeout: 30000,
         type: "POST",
         data: $('#saved_form').serialize(),
         dataType: 'json',
         error: function(XMLHttpRequest, textStatus, errorThrown)  {
              alert("An error has occurred making the request: " + errorThrown)
         },
         success: function(data){   
              alert('it works.  You can do more on success of submit here');
         }                                                                                              
     });
 });

つまり、要約すると、上記のコードは「readFile2.php」というファイルへの ajax 呼び出しを行います。フォームからシリアル化されたデータを投稿しています (基本的には HTML フォーム送信の JavaScript バージョンであり、POST パラメーターの値を PHP ファイルに渡します)。 )jsonデータ(テキスト、htmlなどに変更される可能性があります)が返されることを期待しており、投稿が成功すると「動作します...」と警告します。PHP ファイルは、投稿されたデータを受け入れ、それに対して何かを行い、ファイルに返したいものをエコー バックする必要があります。送信ステータスのjson文字列を送信することを好みます。これにより、DBに不正なデータが入るのを防ぐためのチェックに失敗したかどうかをインターフェースに伝えることができます。フォームの送信時にサーバー側の保護がありました....そうですか?!?

于 2012-08-17T16:16:26.400 に答える