【问题标题】:jQuery dialog box, php formjQuery对话框,php表单
【发布时间】:2010-03-12 03:41:01
【问题描述】:

我有一个在页面加载时为网站打开的对话框。

script type="text/javascript">
$(function() {
    $('#dialog-message').dialog({
        modal: 'true',
        width: '400'
    });
});

</script>

这会产生一个包含:

<div id="dialog-message" title="Free Jiu Jitsu Session at Alliance">
          <!--#include virtual="/includes/guest.php" -->

guest.php 有一个非常小的表单,由页面本身处理:

    <?php
$dbh=mysql_connect //login stuff here       
                if (isset($_POST['submit'])) { 

                if (!$_POST['name'] | !$_POST['email']) 
                {
                echo"<div class='error'>Error<br />Please provide your Name and Email Address so we may properly contact you.</div>";
                }
                else
                {
                $age = $_POST['age'];   
                $name = $_POST['name'];
                $gender = $_POST['gender'];
                $email = $_POST['email'];
                $phone = $_POST['phone'];
                $comments = $_POST['comments'];

                $query = "INSERT INTO table here (age,name,gender,email,phone,comments)
                VALUES ('$age','$name','$gender','$email','$phone','$comments')";

                mysql_query($query);

                mysql_close();

                $yoursite = "my site here";
                $youremail = $email;

                $subject = "Website Guest Contact Us Form";
                $message = "message here";

                $email2 = "send to email address";

                mail($email2, $subject, $message, "From: $email");

                echo"<div class='thankyou'>Thank you for contacting us,<br /> we will respond as soon as we can.</div>";

                }
                }
                ?>

                <form id="contact_us" class="guest" method="post" action="/guest.php" >
                    <fieldset>
                        <legend>Personal Info</legend>
                            <label for="name" class="guest">Name:</label>
                            <input type="text" name="name" id="name" value="" /><br>

                            <label for="phone" class="guest">Phone:</label>
                            <input type="text" name="phone" id="phone" value="" /><br>

                            <label for="email" class="guest">Email Address:</label>
                            <input type="text" name="email" id="email" value="" /><br>

                            <label for="age" class="guest">Age:</label>
                            <input type="text" name="age" id="age" value="" size="2" /><br>

                            <label for="gender" class="guest">Sex:</label>
                            <input type="radio" name="gender" value="male" /> Male
                            <input type="radio" name="gender" value="female" /> Female<br />
                    </fieldset>

                    <fieldset>
                       <legend>Comments</legend>     

                            <label for="comments" class="guest">Comments / Questions:</label>
                            <textarea id="comments" name="comments" rows="4" cols="22"></textarea><br>

                            <input type="submit" value="Submit" name="submit" /> <input type="Reset" value="Reset" />

                    </fieldset> 
                </form>

问题是,表单动作的路径不起作用,因为这个对话框在站点的index.html页面上,如果我输入绝对路径,它不会处理......

我在另一个联系我们页面上有这个功能,所以我知道它可以工作,但是看到对话框,它似乎难住了我......

我该怎么办?

【问题讨论】:

  • 那是实际的 guest.php 代码吗?您在那里展示的内容对 SQL 注入攻击非常开放。你在清理用户输入吗?

标签: jquery dialog


【解决方案1】:

我认为您最好(最简单)的选择实际上是将表单发布到包装页面(thanks.php 或您有什么),该页面又包含 guest.php 代码。

按照您现在的方式,您会将结果发布到 include/guest.php 文件中,该文件周围没有明显的 HTML 修饰。听起来您可能希望结果以某种 AJAX-y 方式加载到对话框中?

【讨论】:

  • 是的,我想在同一个对话框中保留“谢谢”,这不可能吗?
  • 当然可以,但您必须研究某种类型的 AJAX 解决方案——简而言之,通过异步 JavaScript 将您的数据发送到服务器,然后使用新的更新 DIV HTML。网上有无数的教程。我的特别选择是使用 JQuery 库。 Google $.get() 单独的服务器端包含不会按照您想要的方式运行,因为这一切都归结为浏览器作为一个响应(页面+服务器包含。)除非您只是想伪造它并拥有您的感谢.php 包装页面的外观和感觉与原始页面完全一样:-)
  • 这可能是我现在最好的选择......假装它。谢谢
【解决方案2】:

尝试分隔代码或在动作属性中使用#

【讨论】:

    猜你喜欢
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多