Phonegap联系表单不适用于PHP

时间:2012-09-26 08:48:05

标签: php html5 cordova contact-form

我有一个非常奇怪的问题

我正在使用phonegap在HTML5中构建一个移动应用程序,将其编译为本机应用程序。

在该应用程序内部是一个联系表单,我无法让它工作。我尝试了我能想到的一切。但每次我提交表格我都会在屏幕上收到php部分的代码。 显然,该应用程序在浏览器上工作正常,但不在我的iPhone上。

我甚至尝试使用iframe并在那里添加了相同的结果。

所以我的问题是。如何在我的应用程序中添加联系表单(需要将用户信息发送到客户端电子邮件)

任何帮助都将受到高度赞赏

由于

1 个答案:

答案 0 :(得分:3)

如果采用整体方法(通过Titanium / Phonegap将html5改为本机),您的结构应该是这样的

/projects/apps/html5app/index.html
/projects/apps/html5app/contact.html

/projects/apps/html5app/assets/js/phonegap.js
/projects/apps/html5app/assets/js/jquery.js

/projects/apps/html5app/assets/css/css.css

/projects/apps/html5app/assets/images/logo.jpg
/projects/apps/html5app/assets/images/button.jpg
在contact.html中,您需要指向带有PHP文件的实时服务器

<form action="https://service.cdn-app.com/contact-form.php" method="get">

然后使用回发在AJAX或JSON中提交感谢页面,这样就不会提示用户离开应用程序。

或者更新 - 更简单的方法就是按这样做按钮

<input type="button" onclick="submit()" value="submit contact"/>

然后在你的jQuery你可以做他们的动作(他们不会离开你的应用程序,你可以触发替换div与谢谢等)

//启动jQuery表单流程引擎

jQUERY Sample

$.post('https://service.cdn-app.com/contact-form.php', {

    // These are the names of the form values

    FirstName: $('#FirstName_input').val(),
    LastName: $('#LastName_input').val(),
    Email: $('#Email_input').val(),
    MessageText: $('#MessageText_input').val()

    // HTML function

    }, function (html) {
        // Place the HTML in a astring
        var response=html;

        // PHP was done and email sent
        if (response=="success") {
            alert("Message sent!"); 
        } else {

            // Error postback
            alert("Sorry please fill all fields!"); 
        return false;
    }
});

PHP SAMPLE

<?php

    // VARS
    $FirstName=$_GET["FirstName"];
    $LastName=$_GET["LastName"];
    $Email=$_GET["Email"];
    $MessageText=$_GET["MessageText"];
    $Headers = "From:" . $Email;

    //VALIDATION
    if(
    $FirstName=="" ||
    $LastName=="" ||
    $Email=="" ||
    $MessageText==""
    ) {
        echo "Error";
    } else {
        mail("youradmin@cdn.com","mobile app message",$MessageText, $Headers);
        echo "Success";
    }
?>