所以我在纯PHP中工作得很好。当你点击提交时,表单被提交并且PHP页面被加载。所以我试图实现AJAX,以便在提交表单时不必重新加载页面,但现在变量永远不会到达PHP脚本。AJAX请求不起作用
下面是我得到了什么:
<form method="get" action="sms.php">
<input type="text" name="number" value="Phone number" /><br />
<textarea type="text" name="message" rows="5" cols="20"></textarea><br />
<input type="button" onclick="ajaxFunction()" value="Send" />
</form>
的AJAX JS文件:
function ajaxFunction(){
var ajaxRequest;
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay = document.getElementById('confirm');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
var number = document.getElementById('number').value;
var message = document.getElementById('message').value;
var queryString = "?number=" + number + "&message=" + message;
ajaxRequest.open("GET", "sms.php" + queryString, true);
ajaxRequest.send(null);
}
最后的PHP脚本:
<?php
$number = $_GET["number"];
$message = $_GET["message"];
$client = new SoapClient('http://sms2.cdyne.com/sms.svc?wsdl');
$param = array(
'PhoneNumber' => $number,
'LicenseKey' => 'xxxxxxxxxxxxxxxxxxxxxxxx',
'Message' => $message,
);
echo "SMS sent.";
?>
你应该完全放弃并使用jQuery。 – Fosco 2011-06-04 22:58:35
如果您更愿意使用[jQuery的AJAX](http://api.jquery.com/jQuery.ajax/)方法,它会让您的生活更轻松 – 8bitme 2011-06-04 23:00:04
@Fosco和@ 8bitme告诉别人使用jQuery不是答案。 – james 2011-06-04 23:01:35