0

私は何時間もこれに取り組んできました、そして私は完全に途方に暮れています....私はできる限りすべてを試しましたが、問題は私がJqueryにあまり精通していないということです、これは私が初めてです基本的に、フォームデータをphpスクリプトに渡してから、Webページのソースコードを含む変数を返そうとしています。

jqueryは次のとおりです。

 $("button").click(function(){
hi = $("#domain").serialize();
var page;
    $.ajax({
    type: "POST",
    url: "webcrawler.php",
    data: hi,
    //dataType: "text",
    success: function(data){
    page = data;
    document.write(page);
    }
  });

  });

参照するhtmlは次のとおりです。

      <div id="contact_form">
      <form name="contact" action="">
      <fieldset>
      <label for="domain" id="domain_label">Name</label>  
      <input type="text" name="domain" id="domain" size="30" value="" class="text-input" />


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

これを処理するPHPは次のとおりです。

      $search = $_POST["domain"];

      if(!$fp = fopen($search,"r" )) {

      return false;

      } 

      fopen($search,"r" );
      $data = "";



      while(!feof($fp)) { 

      $data .= fgets($fp, 1024);

      }

      fclose($fp); 

  return $data;

      ?>

変数$searchは空白だと思いますが、jqueryで正しく送信していないか、phpで正しく受信していないためですか?ありがとう!

4

2 に答える 2

2

jQueryを使用してフォームデータをシリアル化する場合は、フィールド<form>ではなく、をシリアル化する必要があり<input>ます。

だからこれを試してみてください:

$("button").click(function() {
    var formData = $('form[name="contact"]').serialize();
    var page;

    $.ajax({
        type: "POST",
        url: "webcrawler.php",
        data: formData,
        success: function(data) {
            page = data;
            document.write(page);
        }
    });
});
于 2013-02-21T11:20:04.487 に答える
1

いくつかのことをしなければならないのを見てください:

$("form[id='contact_form']").submit(function (e) {//<---instead click submit form
    e.preventDefault(); //<----------------you have to stop the submit for ajax
    Data = $(this).serialize(); //<----------$(this) is form here to serialize
    var page;
    $.ajax({
       type: "POST",
       url: "webcrawler.php",
       data: Data,
       success: function (data) {
          page = data;
          document.write(page);
       }
   });

});

コメントのように:

  1. Submit form代わりはbutton click
  2. Stop the form submissionそうしないと、ページが更新されます。
  3. $(this).serialize()$(this)ここにフォーム自体があるため、ここでフォームをシリアル化しています。
于 2013-02-21T11:50:17.063 に答える