我目前正在使用JS / AJAX函数,无需刷新页面或点击按钮即可运行。在回显该值时,我遇到了一些问题。例如,如果我更改此行$email = $_POST['name'];
,它的工作原理很完美,但如果我使用$email = $_POST['email'];
这样的电子邮件的实际值,它就不起作用。我是JS& amp;的全新学习者。 PHP。
有人能告诉我为什么会给出这样的结果吗? EXAMPLE
<script>
$(document).ready(function() {
var timer = null;
var dataString;
function submitForm(){
$.ajax({ type: "POST",
url: "test1.php",
data: dataString,
success: function(result){
$('#special').html($('#resultval', result).html());
}
});
return false;
}
$('#email').on('keyup', function() {
clearTimeout(timer);
timer = setTimeout(submitForm, 0050);
var name = $("#email").val();
dataString = 'name='+ name;
});
});
</script>
PHP
<?
if($_POST) {
$email = $_POST['email'];
if (preg_match('|^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$|i', $email)) {
echo ('<div id="special"><span id="resultval">'.$email.'</span></div>');
}
else {
echo ('<div id="special"><span id="resultval">Include a valid email address.</span></div>');
}
}
?>
答案 0 :(得分:1)
好吧,你明确指定一个参数'name'来保存电子邮件地址。没有参数'email'你speficy。在你的JS代码中点击这一行:
dataString = 'name='+ name;
所以尝试像你一样阅读php中的电子邮件地址是没有意义的:
$email = $_POST['email'];
您必须更改JS代码以将参数命名为与尝试在php代码中读取它相同的参数。
因此,您最有可能要做的就是从
更改当前的JS代码 var name = $("#email").val();
dataString = 'name='+ name;
到
var email = $("#email").val();
dataString = 'email='+ email;
答案 1 :(得分:0)
在客户端,浏览器发出带参数name
的请求(因为dataString = 'name=' + name;
),因此在服务器端,您可以按$POST['name']
获取值。