尝试让PHP返回按钮的值。不知道出了什么问题,但它还没有回复这些错误:
"注意:未定义的索引:第2行的/storage/ssd4/271/3416271/public_html/ajaxTest.php中的数据 注意:未定义的索引:第5行和第34行的/storage/ssd4/271/3416271/public_html/ajaxTest.php中的数据;
当我print_r($ get)时,它返回一个空数组。 HTML代码看起来很好,所以我想我搞砸了AJAX?
(预先感谢您提供任何帮助!)
这里是我的HTML,js和PHP供参考:
summary(g3)
# Formula: x ~ p_model(ind, a, b, d)
#
# Parameters:
# Estimate Std. Error t value Pr(>|t|)
# a1 5.9307 0.5588 10.613 5.93e-14 ***
# a2 3.5689 0.7098 5.028 8.00e-06 ***
# a3 -2.2066 0.8901 -2.479 0.016894 *
# b1 12.9545 0.5289 24.495 < 2e-16 ***
# b2 17.4709 0.2708 64.516 < 2e-16 ***
# b3 11.3839 0.3116 36.538 < 2e-16 ***
# d1 11.4351 0.8568 13.347 < 2e-16 ***
# d2 1.8893 0.4897 3.858 0.000355 ***
# d3 1.0848 0.6309 1.719 0.092285 .
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 0.7476 on 46 degrees of freedom
#
# Number of iterations to convergence: 34
# Achieved convergence tolerance: 8.116e-06
答案 0 :(得分:1)
我知道您正在尝试学习编码,因此我不打算批评您的代码的完整性。
这是你缺少的东西:
您没有在网址中包含GET婴儿车。您可以在URL的末尾添加params,如下所示:
ajaxTest.php?data=1
这就是你得到未定义索引的原因。
答案 1 :(得分:1)
好的,在重写之后,这将是正确的方法:
<!DOCTYPE HTML>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="style.css" />
<!-- JS -->
<script type="text/javascript" src="ajaxTest.js"></script>
<script type="text/javascript">
function getData(dataSource, divID, data){
var xhr = new XMLHttpRequest();
data = encodeURIComponent(data);
ele = document.getElementById(divID);
xhr.open('GET', dataSource + '?data=' + data, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
if (xhr.status === 200) {
alert('PHP Returned: ' + xhr.responseText);
ele.innerHTML = xhr.responseText;
}
else if (xhr.status !== 200) {
alert('Request failed. Returned status of ' + xhr.status);
}
};
xhr.send(null);
}
</script>
<title>AJAX test</title>
</head>
<body>
<div id='area'>
<h2>Sending Data to the Server</h2>
<button type="button" value="1" onclick="getData('ajaxTest.php', 'moreText', this.value)">1</button>
<button type="button" value="2" onclick="getData('ajaxTest.php', 'moreText', this.value)">2</button>
<p id="moreText">The fetched message should appear here.</p>
</div>
</body>
</html>
我删除了表单,因为您所做的只是单击按钮。你根本没有提交表格。这样您就不必阻止默认的表单操作。
我也稍微改变了你的PHP,以便它返回它所获得的内容而不仅仅是猜测它:
<?php
if(!empty($_GET['data'])){
echo 'The server got a value of: '. $_GET['data'];
}
?>
我自己测试了代码,当然它工作得很好。
答案 2 :(得分:0)
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="ajaxTest.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />
<title>AJAX test</title>
</head>
<body>
<div id="area">
<h2>Sending Data to the Server</h2>
<form action="" method="GET">
<button type="button" name="data" value="1" onclick="getData(this.value,'ajaxTest.php', 'moreText')">1</button>
<button type="button" name="data" value="2" onclick="getData(this.value,'ajaxTest.php', 'moreText')">2</button>
</form>
<br />
<p id="moreText">The fetched message should appear here.</p>
</div>
</body>
</html>
<script>
var XMLHttpRequestObject = false;
if(window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
}
else if(window.ActiveXObject){
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
function getData(value,dataSource, divID) {
if(XMLHttpRequestObject){
var obj = document.getElementById(divID);
XMLHttpRequestObject.open("GET", dataSource+"?data="+value,false);
XMLHttpRequestObject.onreadystatechange = function() {
if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send();
}
}
</script>
试试这个,我认为它可能适合你。