如何在不提交表单或刷新页面的情况下将jquery中的变量值传递给PHP?
我的目标是:如何在不提交表单或刷新页面的情况下将jquery中的变量值传递给PHP?,php,jquery,html,Php,Jquery,Html,我的目标是: $.ajax({ type: "POST", url: 'index.php', datatype: 'html', data: { password : password} }); 一直试图将其存储在$pword中。但它不储存。 PHP: HTML是这样的: <input type="password" placeholder="password" id="password" name="password"/> 请提供帮助。您可
$.ajax({
type: "POST",
url: 'index.php',
datatype: 'html',
data: { password : password}
});
一直试图将其存储在$pword
中。但它不储存。
PHP:
HTML是这样的:
<input type="password" placeholder="password" id="password" name="password"/>
请提供帮助。您可以使用javascriptsetTimeout函数将表单值传递到php页面,如下所述 我在setTimeout函数中添加了一个名为passData()的函数,因此它调用了前面提到的passData()函数 HTML:
<input type="password" placeholder="password" id="password" name="password"/>
setTimeout(function() { passData() }, 3000);
function passData(){
var password = $("#password").val();
$.ajax({
type: "POST",
url: 'index.php',
datatype: 'html',
data: { password : password}
});
}
使用form.serialize()发送数据
$.ajax({
type: "POST",
url: 'index.php',
datatype: 'html',
data: form.serialize()
});
从jquery文档中,请求应如下所示:
$.ajax({
method: "POST",
url: "some.php",
dataType: 'json',
data: { name: "John", location: "Boston" }
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
另一个建议是创建一个按钮。按下该键时,数据将发送到PHP文件
<input type="password" placeholder="password" id="password" name="password"/>
<input type="button" id="submit" name="submit" value="submit" />
HTML
$(文档).ready(函数(){
$('#password')。在('blur',function()上{
var password=$('#password').val();
$.ajax({
类型:“POST”,
url:'index.php',
数据类型:“html”,
数据:{密码:密码
},
成功:功能(数据){
警报(数据);
}
});
})
})
首先:服务器端(PHP)和HTML代码没有问题。
所以对于jQuery部分:您需要像下面这样更正一行:
$.ajax({
类型:“POST”,
url:'index.php',
数据类型:“html”,
数据:{
密码:$(“#密码”).val()
//在这里,我要求jquery将html输入的整个值(id为“password”)提取为文本(而不是对象),因此它给我输入的文本值。
}})
.success(函数(数据){alert(data.toString());
});//可选功能:当服务器响应您的请求时运行
您如何理解它不存储
?可能重复@u_mulder,我回显了它。@IvanBarayev那个对我来说太复杂了。我对PHP不熟悉。不要设置数据类型,jquery可以找到它,而你正在发送一个json对象,而不是htmlwhy不是一个简单的按钮来发送数据?@Vinet Basantani,你能检查一下你的错误控制台吗,你有没有任何错误,检查一下添加到你页面中的jquery库。setTimeout
的用途是什么?在您的示例中,数据的实际传递是使用一个您在回答中甚至没有提到的函数完成的。@Daskwuff,因为OP应该是“不提交表单或刷新页面?”@Vineet Basantani,我已经更新了我的回答,请再次检查。这取决于存储会话数据的含义。如果要将其存储在会话变量中,以便以后在其他php文件中使用,则应在文件顶部启动会话()
,并将密码存储在会话变量中:$\u session['password']=$\u POST['password']
。请注意,这样做,不加密密码,是非常危险的,因此请考虑加密。我已开始会话。别担心安全问题,我没有发射密码。我只是想让它工作。但即使是$\u SESSION['password']=$\u POST['password']
也无法获取值,请使用附加参数数据类型:“json”
尝试。查看我的更新答案我只是简单地传输用户输入的密码,以检查数据库中是否有匹配的条目。要通过ajax转换任何东西,您需要一个服务器(运行PHP代码)和一个客户端(获取并发送用户密码)。您是如何实现服务器部件的?我检查了我的代码片段,它运行正常。如果你把整个文件放在这里,问题就容易解决了。
<input type="password" placeholder="password" id="password" name="password"/>
<input type="button" id="submit" name="submit" value="submit" />
$(document).ready(function(){
$('#submit').click(function(){
$.ajax({
method: "POST",
url: "my-php-file.php",
dataType: 'json',
data: { password: $('#password').val() }
})
.done(function( msg ) {
alert( "Data sent: " + msg );
});
});
});
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#password').on('blur',function(){
var password = $('#password').val();
$.ajax({
type: "POST",
url: 'index.php',
datatype: 'html',
data: { password : password
},
success: function(data){
alert(data);
}
});
})
})
</script>
<form method="post">
<input type="password" placeholder="password" id="password" name="password"/>
</form>