Dojo - 如何使用Dialog表单提交数据

时间:2012-03-23 10:01:13

标签: dialog dojo form-submit

我想提交一些用户以对话框形式输入的值。他点击按钮,提供他的名字,名字,电子邮件和提交。

当他提交时,我想将这些值存储在数据库中。我有一个PHP脚本应该从用户那里获取这些值...但我不知道如何在提交给我的php脚本后发送这些值。

感谢您的帮助。

--- php script ------>到目前为止只是打印,没有DB存储但打印不起作用

    <?php 
$name= $_POST["name"];

$firstName= $_POST["firstName"]; 

$email = $_POST["email"]; 

print("$name+ $firstName+ $email<br>"); 
?> 

----------------------- HTML页面---------------------- -

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta name="generator" content="HTML Tidy for Windows (vers 14 February 2006), see www.w3.org">
        <title>
            Dojo 
        </title>
        <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
        <link rel="stylesheet" type="text/css" href="../js/dojo/resources/dojo.css">
        <link rel="stylesheet" type="text/css" href="../js/dijit/themes/claro/claro.css">
        <style type="text/css"> body {margin-left: 10px; margin-top: 10px;} </style>        <script type="text/javascript" src="../js/dojo/dojo.js" djconfig="parseOnLoad:true, isDebug: true"></script>        
<script type="text/javascript"> 
dojo.require("dijit.form.Button"); 
dojo.require("dojo.parser"); 
dojo.require("dijit.Dialog"); 
dojo.require("dijit.form.TextBox"); 
dojo.require("dijit.form.ValidationTextBox"); 
dojo.require("dojox.validate.regexp"); 
dojo.addOnLoad(function() { 
        form = dijit.byId("subscription"); 
        dojo.connect(dijit.byId("button1"), "onClick", form, "show"); 
}); 
</script>    
`enter code here`</head>
    <body class="claro">
        <div dojotype="dijit.Dialog" id="subscription" title="subscription form" execute="alert('Transmitted');">
        <table>
                <tr>
                    <td>
                        Name: 
                    </td>
                    <td>
                        <input dojotype="dijit.form.TextBox" type="text" name="name" id="name">
                    </td>
                </tr>
                <tr>
                    <td>
                        FirstName: 
                    </td>
                    <td>
                        <input dojotype="dijit.form.TextBox" type="text" name="firstName" id="firstName">
                    </td>
                </tr>
                <tr>
                    <td>
                        Email : 
                    </td>
                    <td>
                        <input type="text" name="mail" id="mail" dojotype="dijit.form.ValidationTextBox" 
                        regexpgen="dojox.validate.regexp.emailAddress">
                    </td>
                </tr>
                <tr>
                    <td align="center" colspan="2">
                        <button dojotype="dijit.form.Button" type="submit" onclick="return dijit.byId('subscription').isValid();">OK</button>  
                        <button dojotype="dijit.form.Button" type="button" onclick="dijit.byId('subscription').hide();">Annuler</button>
                    </td>
                </tr>
            </table>
        </div>
                <button id="button1" dojotype="dijit.form.Button" type="button">Sign</button>
    </body>
</html>

1 个答案:

答案 0 :(得分:1)

对话框中没有实际的<form>标记。你需要这样的东西:

<div dojotype="dijit.Dialog" id="subscription" title="subscription form" execute="alert('Transmitted');">
  <form action="PATH_TO_PHP_PAGE" method="POST">
      <!--input widgets-->
      <!--submit button widgets-->
  </form>
</div>

如果您想使用具有良好验证功能的dijit表单,则需要dijit.form.Form并将其放在表单标记上:

<form dojoType="dijit.form.Form">