繁体   English   中英

AJAX & PHP - 没有得到.responsetext

[英]AJAX & PHP - Not Getting .responsetext

我有一个表单(稍后将添加表单验证),允许用户为房地产网站“添加属性”。 这是我的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;

?>

我知道这可能是一个轻微的语法错误,这是我通常不会在 SO 上询问的问题,但我已经花了 2 个多小时在上面并且非常沮丧。 谢谢。

更新: var rent = document.getElementById('rent').value; 抛出错误,因为没有 id 为“rent”的元素。

OLD:您没有取消提交按钮的默认操作。 addProperty方法返回false ,然后您应该会看到响应。

Error: document.getElementById("rent") is null
Line: 39

没有 ID 为rent的元素。 你也应该encodeURIencodeURIComponent你的参数:

encodeURIComponent(document.getElementById('name').value)
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM