如何在不提交表单或刷新页面的情况下将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>