【问题标题】:Phonegap contact form not working over PHPPhonegap 联系表格无法在 PHP 上运行
【发布时间】:2023-03-12 07:04:01
【问题描述】:

我遇到了一个很奇怪的问题

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

该应用程序中有一个联系表单,我无法使用它。我尝试了我能想到的一切。但是每次我提交表单时,我都会在屏幕上收到 php 部分的代码。 显然,该应用程序在浏览器上运行良好,但在我的 iPhone 上却不行。

我什至尝试使用 iframe 并在那里添加表单,结果相同。

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

我们将不胜感激任何帮助

谢谢

【问题讨论】:

    标签: php html cordova contact-form


    【解决方案1】:

    如果采用整体方法(通过 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 示例

    $.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 示例

    <?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";
        }
    ?>
    

    【讨论】:

    • 欢迎您。 jQuery 回发是最好的解决方案 - 让它们留在应用程序中并创建良好的 UI 和 UX 感觉。
    • 感谢您的回答我还有一些问题。 1. 我在哪里可以获得 phonegap.js 2. 我可以简单地将 jquery 示例复制/粘贴到我的 jquery.js 3. 我的 PHP 的链接应该是 $.post('xxxx.com/contact-form.php', { 和
      xxxx.com/contact-form.php" method="get"> 或者我需要创建 2 个 PHP 文件 submit-action.php 和 contact-form.php 4. 是否有必要遵循您上面描述的结构或者我可以使用一个不同的文件夹结构对不起那些转储问题,但我有点不知所措
    • 1 - Phonegap.js 是通过您正在使用的 IDE 软件生成的,除非您使用手册。 2 - 复制并粘贴 jQuery 3 - 指向 PHP 的链接应该是相同的,抱歉这是我写的方式 - 只是示例虚拟数据 - 需要相同的形式!最后 4 个文件夹结构是一个建议,也可以让您清楚地看到..有时看到这样的文件夹结构会有所帮助..
    • 好的,我完全按照你说的做了,我将 jquery 部分复制/粘贴到我的 jquery.js 的底部,现在每次打开页面时我都会收到一个警告窗口,说我需要填写在所有领域,作为一个额外的问题,我可以使用浏览器提交表单,但是当我将它编译到 ipa(使用带有 phonegap 的 dreamweaver cs6)时,提交按钮什么也不做。
    • 请用您的工作完整工作代码和文件更新您的问题。在这方面我无法看到或进一步帮助您。
    猜你喜欢
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多