Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用jQuery.ajax()提交表单时是否给我一个空值?_Php_Jquery_Cordova - Fatal编程技术网

Php 用jQuery.ajax()提交表单时是否给我一个空值?

Php 用jQuery.ajax()提交表单时是否给我一个空值?,php,jquery,cordova,Php,Jquery,Cordova,这是我的javascript。我试图让jQuery将我的登录表单数据发送到我的PHP文件。然后我告诉它从php文件中获取数据并显示它。但所有返回的都是“空”。如果我请求另一个值,例如bio,它可以显示它。但它不能显示从我的表单发送的数据 <script type="text/javascript"> $(document).ready(function() { $("img").click(function() { var data =

这是我的javascript。我试图让jQuery将我的登录表单数据发送到我的PHP文件。然后我告诉它从php文件中获取数据并显示它。但所有返回的都是“空”。如果我请求另一个值,例如bio,它可以显示它。但它不能显示从我的表单发送的数据

<script type="text/javascript">
    $(document).ready(function() {
        $("img").click(function() {
            var data = $('form#signin').serialize();
            $.ajax({
                url:'signin.php',
                type:'POST',
                data: data,
                success:function(data) {
                    $("p.test").html(data);
                    $.getJSON("signin.php", function(data) {
                        localStorage.email = data[0];

                    });
                },
                error:function(data) {
                }
            });
        });
    });
</script>

$(文档).ready(函数(){
$(“img”)。单击(函数(){
var data=$('form#sign').serialize();
$.ajax({
url:'signin.php',
类型:'POST',
数据:数据,
成功:功能(数据){
$(“p.test”).html(数据);
$.getJSON(“signin.php”,函数(数据){
localStorage.email=数据[0];
});
},
错误:函数(数据){
}
});
});
});
这是我的PHP

<?php

$email = $_POST["email"];

$profile = array($email, "Karl", "Clement", "Gangsta Love!", "bio bio bio bio bio bio bio     bio bio bio bio bio bio bio bio bio bio bio", "Ottawa",     "http://a3.twimg.com/profile_images/1459354642/IMG_1560_normal.jpg");

header('Content-Type:text/json');
echo json_encode($profile);

?>


非常感谢你的帮助

getJSON发送GET请求,但您尝试访问POST变量。(确切地说,您不通过$.getJSON发送任何变量)

数据类型设置为“json”的$.ajax()请求应该足够了:

<script type="text/javascript">
    $(document).ready(function() {
        $("img").click(function() {
            var data = $('form#signin').serialize();
            $.ajax({
                url:'signin.php',
                type:'POST',
                data: data,
                dataType:'json',
                success:function(data) {

                        localStorage.email = data[0];

                },
                error:function(data) {
                }
            });
        });
    });
</script>

$(文档).ready(函数(){
$(“img”)。单击(函数(){
var data=$('form#sign').serialize();
$.ajax({
url:'signin.php',
类型:'POST',
数据:数据,
数据类型:'json',
成功:功能(数据){
localStorage.email=数据[0];
},
错误:函数(数据){
}
});
});
});

getJSON发送GET请求,但您尝试访问POST变量。(确切地说,您不通过$.getJSON发送任何变量)

数据类型设置为“json”的$.ajax()请求应该足够了:

<script type="text/javascript">
    $(document).ready(function() {
        $("img").click(function() {
            var data = $('form#signin').serialize();
            $.ajax({
                url:'signin.php',
                type:'POST',
                data: data,
                dataType:'json',
                success:function(data) {

                        localStorage.email = data[0];

                },
                error:function(data) {
                }
            });
        });
    });
</script>

$(文档).ready(函数(){
$(“img”)。单击(函数(){
var data=$('form#sign').serialize();
$.ajax({
url:'signin.php',
类型:'POST',
数据:数据,
数据类型:'json',
成功:功能(数据){
localStorage.email=数据[0];
},
错误:函数(数据){
}
});
});
});

您是否进行过测试以确保您的php正在返回数据?因为您在phonegap中,所以需要引用服务器上的php,同时确保您已经在plist中白名单出了外部主机

在xcode中,在phoneGap.plist文件中,您将看到外部主机,在那里添加一个新条目,键不重要,但值设置为*,这将允许所有外部域

然后在php中,只需回显“hello world”并将该消息记录在ajax中

如果这样做有效,那么您就知道您可以访问php,因此下一步是将变量传递给is,从回显开始

json_encode($_POST['email']);
如果有效,下一步是发回整个请求-

echo json_encode($profile);

在分配任何本地存储之前,只需控制台记录数据结果,如果数据结果按预期返回,则使用与当前相同的索引分配VAR,但正如dr.mobile所说,您不需要额外的请求,您已经有了数据。

您测试过php是否正在发送数据吗?因为您在phonegap中,所以需要引用服务器上的php,同时确保您已经在plist中白名单出了外部主机

在xcode中,在phoneGap.plist文件中,您将看到外部主机,在那里添加一个新条目,键不重要,但值设置为*,这将允许所有外部域

然后在php中,只需回显“hello world”并将该消息记录在ajax中

如果这样做有效,那么您就知道您可以访问php,因此下一步是将变量传递给is,从回显开始

json_encode($_POST['email']);
如果有效,下一步是发回整个请求-

echo json_encode($profile);

在分配任何本地存储之前,只需控制台记录数据结果,如果数据结果按预期返回,则使用索引分配变量,就像您当前所做的那样,但就像dr.mobile所说的那样,您不需要额外的请求,您已经有了数据。

json的正确内容类型是
application/json
请向我们展示完整的表单。为什么要用两步流程调用同一个PHP页面两次?你不能让它从第一次调用返回适当的信息吗?application/json,没有任何改变,因为我仍然从我的PHP文件中获取数据。如果我调用数据[1];它显示“卡尔”。但出于某种原因,如果我尝试将$email传递回jquery,它会显示null。json的正确内容类型是
application/json
,请向我们展示完整的表单。为什么要用两步流程调用同一个PHP页面两次?你不能让它从第一次调用返回适当的信息吗?application/json,没有任何改变,因为我仍然从我的PHP文件中获取数据。如果我调用数据[1];它显示“卡尔”。但出于某种原因,如果我尝试将$email传递回jquery,它会显示null。我使用.ajax()发送数据,使用.getJSON检索数据。您尝试访问getJSON回调中的数据[0],其中signin.php不会为$\u POST['email']返回任何内容,因为$\u POST为空。在代码中不需要调用getJSON,只使用数据类型设置为“json”正确的$.ajax()-请求。为什么是空的?我怎样才能修复它?你能举个例子说明你的意思吗?非常感谢你!您可以将整个语句封装到一个条件
if(isset($\u POST[“email”]){}
。除了这个事实(以及已经提到的错误内容类型),它看起来还不错。我使用.ajax()发送数据,使用.getJSON检索数据。您尝试访问getJSON回调中的数据[0],而signin.php将不会访问该回调