Отправка формы в Sencha Touch 2 - PullRequest
3 голосов
/ 23 марта 2012

Я пытаюсь отправить форму со стандартной формой, указанной в загруженном мной SDK.

У кого-нибудь есть какая-либо информация о том, как она проходит? Какие-нибудь подсказки относительно того, как передать это?

Я пытаюсь сделать очень простую форму для сбора информации.

{                    title: 'Register',
                    iconCls: 'add',
                    xtype: 'formpanel',
                    url: 'contact.php',
                    layout: 'vbox',
                    scrollable: true,



                    items: [
                        {
                            xtype: 'fieldset',
                            title: 'Opt In',
                            instructions: 'Want more info on Monster Energy? Opt-in to receive updates. ',

                            items: [
                                {
                                    xtype: 'textfield',
                                    label: 'First Name',
                                    name: 'fname',
                                },
                                {
                                    xtype: 'textfield',
                                    label: 'Last Name',
                                    name: 'lname',
                                },
                                {
                                    xtype: 'emailfield',
                                    label: 'Email',
                                    name: 'email',
                                },
                                {
                                    xtype: 'numberfield',
                                    label: 'Phone',
                                    name: 'phone',
                                }
                            ]
                        },
                        {
                            xtype: 'button',
                            text: 'Send',
                            ui: 'confirm',
                            handler: function() {
                                this.up('formpanel').submit();
                            }
                        }
                    ]
                }

contact.php

<?phpinclude_once "config.php";
mysql_connect($dbhost, $dbuser, $dbpasswd);
mysql_select_db($dbname) or die ("Cannot select db" . mysql_error());
session_start();


//***** Get today's date
$today = date("Y-m-d H:i:s");
$date = date("Y-m-d");


$firstName = addslashes($_POST['fname']);
$lastName = addslashes($_POST['lname']);
$email = $_POST['email'];
$phone = $_POST['phone'];


$sql = "INSERT INTO customer_31
            (mb_firstName, 
            mb_lastName,
            mb_phone,
            mb_email,
            mb_date_entered) 
            VALUES 
            ('$firstName', 
            '$lastName', 
            '$phone',
            '$email')";




header("location:index.php");
exit();

?>

Ответы [ 2 ]

0 голосов
/ 02 мая 2013

Хорошо, пока я не использовал .up с отправкой формы, я сделал нечто похожее немного раньше и заставил его работать, сначала используя getValues ​​() для родительских элементов, выполнив некоторую проверку, а затем запустив это в PHP.Вот некоторый код, надеюсь, он поможет:

handler: function(btn){
            var vals = btn.parent.parent.getValues();
            vals.time = new Date();

           //basic email validation
            var re = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
            var result=re.test(vals.email);
            if (result === true){
                Ext.Ajax.request({
                url: btn.parent.parent.getUrl(),
                params: {   
                        data:Ext.JSON.encode(vals),
                        encoded: vals.toString(),
                        vals: 'other='+JSON.stringify(vals)
                        },
                success: function(res, vals){
                        console.log(res);
                        console.log(JSON.stringify(vals));
                        Ext.Viewport.getMasked().hide();
                        Ext.Msg.alert('Thank you', 'Message received successfully.', Ext.emptyFn);
                        Ext.getCmp('contactForm').reset();
                        },

                failure: function(res){
                        console.log('form not submitted', res);
                        Ext.Viewport.getMasked().hide();
                        Ext.getCmp('contactForm').reset();
                        Ext.Msg.alert('Sorry something went wrong', 'Please try that again', Ext.emptyFn);
                        }
                });
            }

            if (result === false){
                Ext.Viewport.getMasked().hide();
                Ext.Msg.alert('Invalid Email', 'Please try again', Ext.emptyFn);
                Ext.getCmp('contactForm').reset();

            }
        }

PHP

<?php
        $errorMessage = "";

            $db = mysql_connect("YOURDB","USER","PASS");
            if(!$db) die("Error connecting to MySQL database.");
            mysql_select_db('formtest' ,$db);

            $json = $_POST['data'];
            $json = utf8_encode($json);

            $insert = "INSERT INTO formdata VALUES ('".$json."')";

            var_dump($_GET);

            if(mysql_query($insert))
            {
                echo('values inserted successfully');
                header("Location: thankyou.html");

            }
            else
            {
                echo('failure' . mysql_error());
            }

            exit();
?>
0 голосов
/ 23 марта 2012

Вам нужно удалить mb_date_entered из вашего оператора INSERT в php

...