[英]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);
}
});
});
因此,如注釋:
Submit form
而不是button click
Stop the form submission
否則頁面將刷新。 $(this).serialize()
在這里序列化表單,因為在這里$(this)
是表單本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.