无法使用Ajax和PHP获取值
我不知道为什么php可以从数据中返回值。 以下为表格:无法使用Ajax和PHP获取值,php,Php,我不知道为什么php可以从数据中返回值。 以下为表格: <form id="emailform" method="post" > <input type="text" name="email" id="email" value=""> <div class="result"></div> <input type="submit" name="generate" id="g
<form id="emailform" method="post" >
<input type="text" name="email" id="email" value="">
<div class="result"></div>
<input type="submit" name="generate" id="generate" value="Save" >
</form>
和Ajax:
<script>
$(document).ready(function() {
$('#generate').click(function(event) {
event.preventDefault();
email = $('#email').val();
$.ajax({
url: this.href,
type: 'POST',
dataType: 'text',
data:{'email': email},
success: function(html) {
alert(email);
$('.result').html('<p>Thank you for providing email. </p>');
},
error: function() {
$('#emailform').text('An error occurred');
}
});
});
});
</script>
$(文档).ready(函数(){
$(“#生成”)。单击(函数(事件){
event.preventDefault();
email=$('#email').val();
$.ajax({
url:this.href,
键入:“POST”,
数据类型:“文本”,
数据:{'email':email},
成功:函数(html){
警报(电子邮件);
$('.result').html('感谢您提供电子邮件。');
},
错误:函数(){
$('#emailform').text('发生错误');
}
});
});
});
和PHP:
<?php
$email = $_GET['email'];
echo $email;
?>
单击“保存”按钮后,我运行echo$电子邮件,但它不返回任何内容。你怎么能帮我
非常感谢。您在ajax中使用了POST请求,但在php脚本中,您捕获了一个$\u get请求,请尝试将您的php脚本更改为:
<?php
if (isset($_POST['email']){
$email = $_POST['email'];
echo $email;
}else{
echo 'email is not set';
}
?>
您在ajax中使用的是POST请求,但在php脚本中捕获的是$\u get请求请尝试将您的php脚本更改为:
<?php
if (isset($_POST['email']){
$email = $_POST['email'];
echo $email;
}else{
echo 'email is not set';
}
?>
您可以这样进行AJAX调用:
$.ajax({
url: window.location.href+'?email='+email,
type: 'GET',
dataType: 'text',
success: function(html) {
alert(email);
$('.result').html('<p>Thank you for providing email. </p>');
},
error: function() {
$('#emailform').text('An error occurred');
}
});
对于接收PHP部分,我认为最好使用:if(!empty($\u GET['email'])
empty
的作用与isset
相同,但同时检查是否有值。只要isset
,您仍然可以发送一封空电子邮件
由于您正在将数据发送到页面本身,因此可以使其变得更加简单。如果您只是将表单中的方法更改为get
,而不是post
,甚至可以删除整个AJAX请求。您可以这样进行AJAX调用:
$.ajax({
url: window.location.href+'?email='+email,
type: 'GET',
dataType: 'text',
success: function(html) {
alert(email);
$('.result').html('<p>Thank you for providing email. </p>');
},
error: function() {
$('#emailform').text('An error occurred');
}
});
对于接收PHP部分,我认为最好使用:if(!empty($\u GET['email'])
empty
的作用与isset
相同,但同时检查是否有值。只要isset
,您仍然可以发送一封空电子邮件
由于您正在将数据发送到页面本身,因此可以使其变得更加简单。您甚至可以删除整个AJAX请求,如果您只是将表单中的方法更改为
get
,而不是post
只需将$\u get['email']更改为$\u post['email'],或者将AJAX调用中的类型更改为get,它应该可以正常工作。只需将$\u get['email']更改为$\u post['email']或者更改ajax调用中的类型以获取,它应该能够完美地工作。Hi。感谢您的回答,但它返回的电子邮件未设置。为什么会这样?在ajax调用中编辑post
来获取@SuperDJ似乎不起作用。我不知道为什么。@BuiPhuc您可以做的是将数据附加到url上。制作:url:this.href+'?email='+email,
制作数据键useless@BuiPhuc看一个超级DJ的命题。感谢您的回答,但它返回的电子邮件未设置。为什么会这样?在ajax调用中编辑post
来获取@SuperDJ似乎不起作用。我不知道为什么。@BuiPhuc您可以做的是将数据附加到url上。制作:url:this.href+'?email='+email,
制作数据键useless@BuiPhuc请参见a提出SuperDJ命题谢谢,但单击更新答案后它返回“出错”。谢谢,单击更新答案后它返回“出错”。我还有其他建议吗?谢谢你能再给我一个建议吗?谢谢
$.get( this.href+'?email='+email, function( data ) {
console.log(data);
alert( "Load was performed." );
});