繁体   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