【问题标题】:Submitting form with jQuery .ajax() or .post() on Native iPhone Phonegap app?在 Native iPhone Phonegap 应用程序上使用 jQuery .ajax() 或 .post() 提交表单?
【发布时间】:2012-02-05 21:42:51
【问题描述】:

我想知道如何使用 jQuery 的 .ajax().post() 从 Phonegap Native iPhone 应用程序将数据发送到我的网络服务器上的 php 文件?
它必须是xml还是json?或者我可以将常规的 html 发布数据发送到文件吗?

如果你能给我一个例子,那就太好了!

更新:感谢 Drew 提供的出色解决方案!我还发现一篇文章也很好地解释了这个过程。

更新 2:我的脚本有问题。

这是我的 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>

这是我的 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);

?>

非常感谢您的帮助!

【问题讨论】:

    标签: php jquery iphone ajax cordova


    【解决方案1】:

    您最好的选择是 JSON,但您可以像普通表单一样提交。尝试一些实验 -

    $.ajax({
       url:'formPage.php',
       type:'POST',
       data:'name=john&email=john@smith.com',
       success:function(data){
         console.log(data);
       },
       error:function(w,t,f){
         console.log(w+' '+t+' '+f);
       }
    });
    

    应该可以正常工作。你也可以只做 JSON

        $.ajax({
           url:'formPage.php',
           type:'POST',
           data:{name:'john',email:'john@smith.com'},
           success:function(data){
             console.log(data);
           },
           error:function(w,t,f){
             console.log(w+' '+t+' '+f);
           }
        });
    

    首先我会让你的应用向你的服务器发送一个请求并让它返回一个语句,这样你就可以看到它连接并响应,然后开始传递变量!

    【讨论】:

    • 感谢您的回答!这是一个很大的帮助!一个小问题,如果我使用第二种方法,它会用 http post 发布值吗?我可以在我的 php 文件中通过 $_POST('name') 接收这些值吗?还是我必须解码它?如果是这样,我将如何在 php 中将它们放在 php 变量下?
    • 你完全可以用你的 php 使用 JSON 来设置它。如果您使用的是 php,您可以使用第一种方法提交并像通常使用 $_POST 一样接收值,如果您使用 JSON,则需要进行 json_decode 检出 - php.net/manual/en/function.json-decode.php
    • 非常感谢德鲁。你省了很多麻烦。为了安全起见,我将使用 json!
    • 还有一件事,如果我使用json 来post 到我的php 文件,我如何访问数据到json_encode 呢?你能给我写一个 PHP 例子吗?在那之后,我会停止打扰你。顺便说一句,我接受了答案。
    • 我实际上正在编写一个关于为 phonegap 制作基本 RESTful API 的教程...完成后将发布链接!
    猜你喜欢
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 2014-08-15
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多