簡體   English   中英

用PHP處理Jquery帖子

[英]Processing Jquery Post with PHP

我已經呆了好幾個小時了,我完全不知所措...。我已經盡力了,但是問題是我對Jquery不太熟悉,這是我第一次曾經使用過它。...基本上,我試圖將表單數據傳遞給php腳本,然后返回一個將包含網頁源代碼的變量。

這是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正確接收了它? 謝謝!

好了,當您使用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);
        }
    });
});

看到您必須做幾件事:

$("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)是表單本身。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM