-1

重複の可能性:
Jquery の投稿、新しいウィンドウでの応答

GenID ENSMUSG00000098791 ENSMUSG00000023441 ENSMUSG00000047431 のような results.php というページにテーブル html があります。

results.php にはこの機能があります

<script>

function contenidoCelda() 
  {
  var table= $('#tabla_results');
  cells = $('td');
 for (var i=0,len=cells.length; i<len; i++)
   {
    cells[i].onclick = function()
      {
      var formData2 = new FormData(document.getElementById("formulario"));
      formData2.append("gen_id",(this.innerHTML));
      $.ajax({
          type: "POST",
      url: "test.php",
      data: formData2,
      cache: false,
      processData: false, 
      contentType: false, 
      success: function(data)
      {
        alert(data);       
            window.open('test.php', '_blank');

      }
    });

       }
     }
   }

</script>

ファイルtest.phpで送信したデータを使用したいのですが、これをresults.phpに返すのではなく、test.phpで使用して、動的にコンテンツを生成します。

これはtest.phpです

<?php
$data = $_POST['gen_id'];
system("mkdir $data");
echo "Hola";
echo $data;
echo '<xmp>';var_dump($data);echo '</xmp>';
?>

<html>
  <link href="css/ui-lightness/jquery-ui-1.9.1.custom.css" rel="stylesheet">
  <script src="js/jquery-1.8.2.js"></script>
  <script src="js/jquery-ui-1.9.1.custom.js"></script>
<body>
<form>

<p id = "testing"> Test page </p>

<?php if($data == "ENSMUSG00000047751") {echo "Good";} else {echo "Bad";}   ?>

</form>
</body>

したがって、ここの test.php では、表でその genid をクリックしても、Bad と表示され、結果に Good を返すと、Good と表示される必要があります。

ディレクトリを作成するテストでは、クリックしたgenidが正常に機能します

私がしなければならないこと?

4

2 に答える 2

1

$.ajax 呼び出しで、次のように設定してみてください。

$.ajax({
  type: "POST",
  url: "test.php",
  data: "testing123",
  cache: false,
  processData: false, 
  contentType: false, 
});

そして、dir test123 が作成され、エコーバックされるかどうかを確認します。

そうでない場合、問題は次の 2 行にあり、具体的には var formData2 の定義にあります。

var formData2 = new FormData($('#formulario')[0]);
formData2.append("gen_id",(this.innerHTML));

セミコロンの代わりにカンマが使用されているなど、入力エラーがないかどうかを確認します。

var table = document.getElementById('tabla_results'),  <-- THIS IS A COMMA. TYPO?
cells = table.getElementsByTagName('td');

また、jQuery と JavaScript が混在しています。なぜjQueryで標準化しないのですか? たとえば、上記の 2 行は jQuery では次のように記述されます。

var table = $('#tabla_results');
cells = $('td');

タイピングがずっと少ないですよね?

また、jQuery ライブラリへのリンクが含まれていると確信していますか? そのような:

<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
于 2012-11-22T20:30:53.177 に答える
0

問題はあなたが定義する方法にあると思いますformData2

var formData2 = new FormData($('#formulario')[0]);

formData2実際には FormDataではありません。

次のように切り替えてみてください。

var formData2 = new FormData(document.getElementById("formulario"));

これでデータの問題は解決するはずです。

編集:質問の編集について、結果を別のページに投稿したい場合、本当にajaxを使用する必要はありません。フォーム送信時に JavaScript を使用して、追加のフィールドに ID を追加し (非表示フィールドのように追加できない場合...)、通常のフォーム送信を使用します。

于 2012-11-22T20:32:25.887 に答える