我需要使用AJAX(使用方法POST)向我的.php文件发送一个变量并显示它(使用php)。这是我的HTML代码:
<script type = "text/javascript">
var XMLHttpRequestObject = false; //LO INICIALIZAMOS A FALSO PARA DESPUES COMPROBAR QUE ESTA CREADO CORRECTAMENTE
if (window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP"); //PARA INTERNET EXPLORER
}
function irweb(idDiv) {
if (XMLHttpRequestObject) {
var objeto = document.getElementById(idDiv);
nom1="holaaaaaaa";
// var nom1 = document.getElementById('nombre').value;
//var com1 = document.getElementById('comentarios').value;
XMLHttpRequestObject.open("POST", "p2.php?");
XMLHttpRequestObject.setRequestHeader("Content-type","application/x-www-form-urlencoded");
XMLHttpRequestObject.onreadystatechange = function() {
if (XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200) {
objeto.innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send("n="+nom1);
}
}
</script>
</head>
<body>
<form method="post" id="formulario">
<input type="submit" value="Enviar" onclick ="irweb('contenedor')" id="enviar"/>
</form>
<div id="contenedor" style="background-color:#99FF66;text-align:center;"></div>
</body>
这是我的PHP代码:
<?php
$cabe = <<< 'EOD'
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
</head>
<html>
<body>
<p>hola</p>
</body>
</html>
EOD;
$pasado1=$_POST["n"];
$pasado2=$_POST["c"];
echo "El parametro pasado es -->".$pasado1;
echo "El parametro pasado es -->".$pasado2;
?>
我在JS代码中调用了一些警告,如果我正确地得到了值,那就行了,它可以工作,但是当我调用php文件时,没有任何反应
答案 0 :(得分:2)
当您点击提交按钮时,您:
您没有看到JS的结果,因为表单在readystate达到4之前提交(重新加载页面)。
如果JS运行,请停止提交表单:
onclick="irweb('contenedor'); return false;"
...并修复服务器端脚本,以便在JS因任何原因失败并且表单提交时它可以处理POST数据。
答案 1 :(得分:0)
你尝试过使用jquery吗?如果没有,请尝试轻松编码和维护 http://api.jquery.com/jQuery.post/
ajax邮政编码简单如下:
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});