十月 CMS:AJAX 表单
Posted
技术标签:
【中文标题】十月 CMS:AJAX 表单【英文标题】:October CMS: AJAX form 【发布时间】:2022-01-20 11:21:49 【问题描述】:我的目标是在指定并提交日期范围时更新部分以显示课程日期。
我有一个按预期工作的功能。
用户选择开始日期 用户选择结束日期 用户点击搜索 结果记录到控制台这里是函数
function onFetchDataFromServer()
$course = Course::findOrFail( $this->param('id') );
$start = Input::get('start_date');
$end = Input::get('end_date');
$dates = $course->coursemetas->whereBetween('date', array($start, $end));
return $dates;
这是标记
<form class="row gx-3 align-items-center" data-request="onFetchDataFromServer" data-request-success="console.log(data)"">
<div class="col-12 col-lg pxp-has-left-border">
<div class="input-group mb-3 mb-lg-0">
<span class="input-group-text"><span class="fa fa-calendar-o"></span></span>
<input type="date" class="form-control" id="startPicker" name="start_date" placeholder="Choose a start date">
</div>
</div>
<div class="col-12 col-lg pxp-has-left-border">
<div class="input-group mb-3 mb-lg-0">
<span class="input-group-text"><span class="fa fa-calendar-o"></span></span>
<input type="date" class="form-control" id="endPicker" name="end_date" placeholder="Choose an end date">
</div>
</div>
<div class="col-12 col-lg-auto">
<button type="submit">Search dates</button>
</div>
</form>
因此,我现在想更新部分结果,而不是将结果记录到控制台。
我在视图中有一个名为“课程/元”的部分。
有人可以帮帮我吗?
提前致谢。
【问题讨论】:
【参考方案1】:你可以试试这样的。检查documents here。
这是针对页面的 PHP 部分的:
function onFetchDataFromServer()
$course = Course::findOrFail( $this->param('id') );
$start = Input::get('start_date');
$end = Input::get('end_date');
$dates = $course->coursemetas->whereBetween('date', array($start, $end));
$this['dates'] = $dates;
return [
'#myDiv' => $this->renderPartial('coursemetas')
];
这是针对组件插件的:
function onFetchDataFromServer()
$course = Course::findOrFail( $this->param('id') );
$start = Input::get('start_date');
$end = Input::get('end_date');
$dates = $course->coursemetas->whereBetween('date', array($start, $end));
$this->page['dates'] = $dates;
return [
'#myDiv' => $this->renderPartial('@coursemetas')
];
注意与renderPartial
一起发送的@ 符号,因为这告诉框架在插件文件夹中查找部分。或者您可以通过组件和部分名称指定部分路径,例如return $this->renderPartial('course::coursemetas');
。
【讨论】:
好的,所以我做了以下事情: - 将部分coursemetas
添加到我的页面布局中,但如果我在函数中使用@coursemetas,它会返回异常:'找不到部分'coursemetas'。 '加载没有“@”只是没有响应。
我在 php 选项卡中而不是在组件中执行此操作
@Jakef19 啊啊啊你没有指定。我会更新答案。在您的分部主题中,您有一个名为 metas.htm 的分部?还是叫 coursemetas.htm?
啊抱歉!它叫做 coursemetas.htm
@Jakef19 你有没有让这个工作?您需要更多帮助吗?以上是关于十月 CMS:AJAX 表单的主要内容,如果未能解决你的问题,请参考以下文章
使用 jQuery.ajax 在 MySQL 中存储表单数据 [重复]