Контактная форма Phonegap не работает через PHP

у меня очень странная проблема

Я создаю мобильное приложение в HTML5, используя phonegap, чтобы скомпилировать его в собственное приложение.

Внутри этого приложения есть контактная форма, и я не могу заставить ее работать. Я пробовал все, что мог придумать. Но каждый раз, когда я отправляю форму, я получаю код части php на своем экране. Очевидно, что приложение отлично работает в браузере, но не на моем iphone.

Я даже пытался использовать iframe и добавил туда форму с теми же результатами.

Итак, мой вопрос. Как добавить контактную форму (необходимо отправить информацию о пользователе на адрес электронной почты клиента) внутри моего приложения

Любая помощь будет высоко оценена

Спасибо


person AlicaIM    schedule 26.09.2012    source источник


Ответы (1)


Ваша структура должна быть такой, если вы используете целостный подход (html5 для нативного через Titanium/Phonegap)

/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("[email protected]","mobile app message",$MessageText, $Headers);
        echo "Success";
    }
?>
person TheBlackBenzKid    schedule 26.09.2012
comment
Добро пожаловать. Постбэк jQuery — лучшее решение — он заставляет их оставаться в приложении и создает хороший пользовательский интерфейс и ощущение UX. - person TheBlackBenzKid; 26.09.2012
comment
Спасибо за ответ, у меня есть еще несколько вопросов. 1. где я могу получить phonegap.js 2. Могу ли я просто скопировать/вставить образец jquery в свой jquery.js 3. Ссылка на мой PHP должна быть $.post('xxxx.com/contact-form.php', { и ‹form action=xxxx.com/contact-form.php method=get› Или мне нужно создать 2 файла PHP submit-action.php и contact-form.php 4. Нужно ли следовать структуре, как вы описали их выше, или я могу использовать другую структуру папок. Извините за эти вопросы о дампе, но я немного перегружен. - person AlicaIM; 26.09.2012
comment
1 - Phonegap.js создается с помощью программного обеспечения IDE, которое вы используете, если вы не используете руководство. 2 - Скопируйте и вставьте jQuery 3 - ссылка на PHP должна быть такой же, извините, это было так, как я написал - просто образец фиктивных данных - должен быть такой же формы! и, наконец, была предложена структура из 4 папок, а также чтобы дать вам четкое представление ... иногда помогает увидеть такую ​​​​структуру папок ... - person TheBlackBenzKid; 26.09.2012
comment
Хорошо, я сделал это именно так, как вы сказали, я копирую / вставляю часть jquery в нижнюю часть моего jquery.js, и теперь каждый раз, когда открывается страница, я получаю предупреждение о том, что мне нужно заполнить все поля, как дополнительную проблему я могу отправить форму с помощью браузера, но когда я компилирую ее в ipa (используя dreamweaver cs6 с phonegap), кнопка отправки ничего не делает. - person AlicaIM; 26.09.2012
comment
Пожалуйста, обновите свой вопрос, указав полный рабочий код и файлы. Я не могу видеть или помочь вам в этом. - person TheBlackBenzKid; 26.09.2012
comment
Извините за задержку с ответом, но у меня очень неприятный грипп. Вот ссылка на мобильную форму. mobile.alicante-intermedia.com/contact.html Я создал jquery_form.js, который загружает только контактную форму. Каждый раз, когда я пробовал это, я получаю это всплывающее окно, прежде чем смогу заполнить поля - person AlicaIM; 03.10.2012
comment
в качестве примечания. Я только что попробовал приложение, используя phonegap, и ipa работает нормально. Единственная проблема, с которой я сейчас сталкиваюсь, это этот экран предупреждений. - person AlicaIM; 03.10.2012