我有一个表单(稍后会添加表单验证),允许用户为房地产网站“添加房产”。这是我的html / js:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Add New Property</title>
<script type="text/javascript">
function addProperty() {
var name = document.getElementById('name').value;
var address = document.getElementById('address').value;
var lat = document.getElementById('lat').value;
var lng = document.getElementById('lng').value;
var type = document.getElementById('type').value;
var rent = document.getElementById('rent').value;
var bedrooms = document.getElementById('bedrooms').value;
var owner_id = document.getElementById('owner_id').value;
if (window.XMLHttpRequest) {
//code for IE7+, Firefox, Chrome and Opera
xmlhttp = new XMLHttpRequest();
}
else {
//code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById('message').innerHTML = xmlhttp.responseText;
}
}
var url = "add_property.php?name="+name+"&address="+address+"&lat="+lat+"&lng="+lng;
url += "&type="+type+"&bedrooms="+bedrooms+"&owner_id="+owner_id;
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
Property Name:
<input type="text" name="name" id="name" />
<br />
Address:
<input type="text" name="address" id="address" />
Lat: <input type="text" name="lat" id="lat" />
Lng: <input type="text" name="lng" id="lng" />
<br />
Type of property:
<select name="type" id="type">
<option value="house">House</option>
<option value="apartment">Apartment</option>
</select>
<br />
Number of Bedrooms:
<input type="text" name="bedrooms" id="bedrooms" />
<br />
Owner Id:
<input type="text" name="owner_id" id="owner_id" />
<br /><br />
<input type="button" value="Add Property" onclick="addProperty()" />
</form>
<div id="message"></div>
</body>
</html>
这是我的php:
<?php require_once("includes/initialize.php"); ?>
<?php
$name = $_GET['name'];
$address = $_GET['address'];
$lat = $_GET['lat'];
$lng = $_GET['lng'];
$type = $_GET['type'];
$rent = $_GET['rent'];
$bedrooms = $_GET['bedrooms'];
$owner_id = $_GET['owner_id'];
//this text won't come back...
$message = $name.$address.$lat.$lng.$type.$rent.$bedrooms.$owner_id;
echo $message;
?>
我知道这可能是一个轻微的语法错误,这是我通常不会问的问题,但是我已经花了2个多小时,并且过于沮丧。感谢。
答案 0 :(得分:2)
更新:var rent = document.getElementById('rent').value;
抛出错误,因为没有ID为“rent”的元素。
OLD:您没有取消提交按钮的默认操作。从false
方法返回addProperty
,然后您就会看到响应。
答案 1 :(得分:0)
Error: document.getElementById("rent") is null
Line: 39
没有标识为rent
的元素。
你应该encodeURI
或encodeURIComponent
你的参数:
encodeURIComponent(document.getElementById('name').value)
...