如何从移动应用程序使用 Ajax 提交表单
How to submit a form using Ajax from a mobile application
我需要使用 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 请求将来自外部移动应用程序(单击时,我 运行 javaScript 和 Ajax 提交表单)。
这可能吗?如果是,我应该将哪些参数传递给 Ajax 请求(基于此处的示例:“Form submit with AJAX passing form data to PHP without page refresh”我需要传递 url、数据和成功)。
如果可能的话,我还可以传递用户名和密码(表单从字段集中获取它们),我可以以纯文本形式提供它们(没有安全问题)。
使用序列化: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
我需要使用 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 请求将来自外部移动应用程序(单击时,我 运行 javaScript 和 Ajax 提交表单)。
这可能吗?如果是,我应该将哪些参数传递给 Ajax 请求(基于此处的示例:“Form submit with AJAX passing form data to PHP without page refresh”我需要传递 url、数据和成功)。
如果可能的话,我还可以传递用户名和密码(表单从字段集中获取它们),我可以以纯文本形式提供它们(没有安全问题)。
使用序列化: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