我是新注册的,但多年来一直是一个安静的读者。 对于这一点,我通过搜索stackoverflow找到了我所有问题的答案:D 但现在我不得不问......
所以我是AJAX的新手,我正在构建一个AJAX请求的测试ap。 我按照本页的例子进行了操作。 http://www.w3schools.com/php/php_ajax_database.asp
关于我的测试ap的信息: 这一切都与编写一个wizzard有关。 这段代码来自我的“wizzard.php”。
index.php正在通过JQUERY加载“wizzard.php” 内容div有一些id。 所以Framework等的所有包含都在index.php中。 至今... wizzard可以工作,并在浏览器中显示相关内容。
现在问题: 向导本身有一个“下一步”按钮。如果你点击它,你会看到 来自wizzard的另一个“页面”(Step)。 HTML看起来像这样:
<div id="wiz1step3">
<h4 class="widgettitle">Step 3: Overview</h4>
<div class="par terms" style="padding: 0 20px;">
<p>Hier werden zusammenfassend.</p>
<p>Alle Informationen gesammelt die das Hinzufügen betreffen</p>
<div id="DeviceTypeIdHint"><b>DeviceTypeID will be listed here...</b>
</div>
<p>
<input type="checkbox" />I agree with the terms and agreement...</p>
</div>
所以我在例子中有一个“Div Hint”。 这是显示AJAX请求代码的地方。
在wizzard的第1页上,我有一个Dropbox,它显示数据库中的一些项目。 我将通过AJAX将项目的名称继续到数据库,我的目标是在第3页的wizzard中显示item-database-id。 (页面由JQUERY控制)
所以我在wizzard.php上有一个JQuery Funktion,我应该这样做 AJAX-Voodoo Stuff。
看起来像这样:
jQuery('.buttonNext').click(function(e) {
//Hier kommt der AJAX Aufruf für das Besorgen der ID des ausgewähltenDevices
e.preventDefault();
var deviceTypeModel = jQuery('#selection option:selected').text();
if (deviceTypeModel == "") {
document.getElementById("DeviceTypeIdHint").innerHTML = "Es wurde keine ID Zugeordnet";
} else {
if (window.XMLHttpRequest) {
//code for IE7+, Firefix, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
alert(xmlhttp.readyState)
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("DeviceTypeIdHint").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "getDeviceTypeIdFromDeviceTypeModel.php?q=" + deviceTypeModel, true);
xmlhttp.send;
}
与index.php和wizzard.php一样 是“GetDeviceTypeIdFromDeviceTypeModel.php”。位于。 这是应该执行AJAX-Voodoo技巧的文件。
看起来像这样:
<?php
/*
* nimmt AJAX Anfragen entgegen und führt sie aus
*/
include_once '\includes\DataAccess.php';
$DataAccess = new DataAccess();
$DeviceTypeNameFromRequest = $_GET['q'];
$AJAX_DeviceTypeId = $DataAccess ->GetDeviceTypeIdForDeviceTypeModel($DeviceTypeNameFromRequest);
echo $AJAX_DeviceTypeId;
我已经调试了JQUERY的东西,直到Point
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("DeviceTypeIdHint").innerHTML = xmlhttp.responseText;
}
问题是readyState始终为1。 我的xmlhttp.responseText始终为空。
我无法弄清楚为什么这个请求不起作用。 Div-Hint没有变化...... 我会感谢每一个答案。
PS。对不起这种可怕的格式化 这是我的第一篇文章...这个语法修正让我烦恼,我正在努力解决“代码剪切工具”XD
答案 0 :(得分:1)
问题在于您使用的是xmlhttp.send
而不是xmlhttp.send()
。