使用 AJAX & modal 从 PHP 更新 MySQL 记录
Update MySQL record from PHP using AJAX & modal
我正在尝试使用模态形式制作更新选项,我已经制作了“ADD New” - 工作正常,但更新有很多问题 - 我想在模态形式上查看实际数据以编辑它。你能帮我解决这个问题吗?我只需要功能部分的帮助。
这是我添加新代码的代码:
public function dodajAction()
{
$request = $this->getRequest();
$jsonModel = new JsonModel();
if ($request->isPost()) {
$dane = $request->getPost();
$formDodaj = new FormAdm\OfertaForm();
$formDodaj->setData($dane);
if ($formDodaj->isValid()) {
// dodaj
$this->oferta->dodaj($dane);
$jsonModel->setVariables(['wynik' => true]);
} else {
// w razie błędu renderuj formularz
$viewModel = new ViewModel(['form_dodaj' => $formDodaj]);
$viewModel->setTerminal(true);
$viewModel->setTemplate('admin/oferty/dodaj');
$jsonModel->setVariables(['wynik' => false, 'html' => $this->renderer->render($viewModel)]);
}
}
return $jsonModel;
}
这就是模态形式:
<div class="modal fade" id="modalDodajOferte" tabindex="-1" role="dialog" aria-labelledby="modalDodajOferteLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalDodajOferteLabel">Dodaj ofertę</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<?=$this->partial('admin/oferty/dodaj', ['form_dodaj' => $this->form_dodaj]) ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="btnDodajOferte">Dodaj</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Zamknij</button>
</div>
</div>
</div>
</div>
来自一位波兰同胞的建议,拜托!!!在代码中使用英文单词。这提高了可读性,特别是如果您遵循命名标准,稍后您可能会发现可以通过使用默认值来帮助您的工具。例如$form->offer->add() 比我们的本地 ->oferta->dodaj() 更容易被堆栈溢出的任何人阅读。
回到问题上来,您没有向我们提供任何方式来查看更新是如何在系统上执行的
我相信
if ($formDodaj->isValid()) {
// dodaj
$this->oferta->dodaj($dane);
$jsonModel->setVariables(['wynik' => true]);
负责将实际数据发送到数据库,但是更新代码应该完全在不同的函数中,同样用于查看。
这听起来更像是一个 XY 问题,因此您可能需要重新考虑您实际需要我们帮助您的内容。
我正在尝试使用模态形式制作更新选项,我已经制作了“ADD New” - 工作正常,但更新有很多问题 - 我想在模态形式上查看实际数据以编辑它。你能帮我解决这个问题吗?我只需要功能部分的帮助。
这是我添加新代码的代码:
public function dodajAction()
{
$request = $this->getRequest();
$jsonModel = new JsonModel();
if ($request->isPost()) {
$dane = $request->getPost();
$formDodaj = new FormAdm\OfertaForm();
$formDodaj->setData($dane);
if ($formDodaj->isValid()) {
// dodaj
$this->oferta->dodaj($dane);
$jsonModel->setVariables(['wynik' => true]);
} else {
// w razie błędu renderuj formularz
$viewModel = new ViewModel(['form_dodaj' => $formDodaj]);
$viewModel->setTerminal(true);
$viewModel->setTemplate('admin/oferty/dodaj');
$jsonModel->setVariables(['wynik' => false, 'html' => $this->renderer->render($viewModel)]);
}
}
return $jsonModel;
}
这就是模态形式:
<div class="modal fade" id="modalDodajOferte" tabindex="-1" role="dialog" aria-labelledby="modalDodajOferteLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalDodajOferteLabel">Dodaj ofertę</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<?=$this->partial('admin/oferty/dodaj', ['form_dodaj' => $this->form_dodaj]) ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="btnDodajOferte">Dodaj</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Zamknij</button>
</div>
</div>
</div>
</div>
来自一位波兰同胞的建议,拜托!!!在代码中使用英文单词。这提高了可读性,特别是如果您遵循命名标准,稍后您可能会发现可以通过使用默认值来帮助您的工具。例如$form->offer->add() 比我们的本地 ->oferta->dodaj() 更容易被堆栈溢出的任何人阅读。
回到问题上来,您没有向我们提供任何方式来查看更新是如何在系统上执行的
我相信
if ($formDodaj->isValid()) {
// dodaj
$this->oferta->dodaj($dane);
$jsonModel->setVariables(['wynik' => true]);
负责将实际数据发送到数据库,但是更新代码应该完全在不同的函数中,同样用于查看。
这听起来更像是一个 XY 问题,因此您可能需要重新考虑您实际需要我们帮助您的内容。