【问题标题】:How to submit a form using Ajax from a mobile application如何使用 Ajax 从移动应用程序提交表单
【发布时间】:2015-03-17 04:59:32
【问题描述】:

我需要使用 Ajax 提交以下表单 (components/com_users/views/login/tmpl/default_login.php. )。

<form action="<?php echo JRoute::_('index.php?option=com_users&task=user.login'); ?>" method="post">

    <fieldset>
        <?php foreach ($this->form->getFieldset('credentials') as $field): ?>
            <?php if (!$field->hidden): ?>
                <div class="login-fields"><?php echo $field->label; ?>
                <?php echo $field->input; ?></div>
            <?php endif; ?>
        <?php endforeach; ?>
                     ......
</form>

我的 Ajax 请求将来自外部移动应用程序(点击时,我使用 Ajax 运行 javaScript 以提交表单)。

这可能吗?如果是,我应该向 Ajax 请求传递什么参数(基于此处的示例:“Form submit with AJAX passing form data to PHP without page refresh”我需要传递 url、数据和成功)。

如果可能的话,我还可以传递用户名和密码(表单从字段集中获取它们),我可以以纯文本形式提供它们(没有安全问题)。

【问题讨论】:

    标签: javascript php jquery ajax joomla


    【解决方案1】:

    使用序列化:documentation

    在您的情况下,为您的表单添加一个 ID 或名称,或者如果它是页面中唯一的表单,您可以:

    $('selectorOfButtonThatTriggers').click(function(){
        $.ajax({
                type: 'POST',
                url: $('form').attr('action'),
                data: $('form').serialize(),
                success: function(data){
                       alert(data);
                }
        });
    });
    

    您的所有表单字段都将被获取,并且在服务器端,POST 键将是字段输入名称。

    要以编程方式添加更多数据,您可以使用:

    data: $('form').serialize() + "&more1=" + more1value
    

    【讨论】:

    • 网站在不同的服务器上。我不需要表单所在文件的 URL 吗?
    • 我设法提交了表格。但是表单本身正在从用户名和密码字段网站的登录页面获取凭据(当我提交表单时它们是空的)。我需要将这些值与请求本身一起传递,以便表单从我的请求中读取它们。我需要修改表格吗?
    猜你喜欢
    • 2021-07-28
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多