【发布时间】:2017-03-10 08:58:45
【问题描述】:
我是 CakePhp 框架的新手,目前我正在测试一个项目。我遇到的问题是,我可以填充下拉选项,但是当我想选择一个选项时,它不会保存在数据库中。我错过了什么?
使用此代码我可以填充下拉列表 - bookings.js
$("#contact_submit").click(function () {
var name = $("#name").val();
var contact_email = $("#contact_email").val();
var subject = $("#subject").val();
var message = $("#txtmessage").val();
var service = $("#sel1").val();
console.log(name+contact_email+subject+message+service);
$.post("/inquiries/inquiry", //Required URL of the page on server
{// Data Sending With Request To Server
name: name,
email: contact_email,
subject: subject,
txt: message,
service_id: service,
},
function (response) { // Required Callback Function
if (jQuery.parseJSON(response).status == 'success') {
if ($("#available").hasClass("hide")) {
$("#available").removeClass("hide");
}
if (!$("#available").hasClass("hide")) {
$("#notavailable").addClass("hide");
}
}else{
if ($("#notavailable").hasClass("hide")) {
$("#notavailable").removeClass("hide");
}
if (!$("#available").hasClass("hide")) {
$("#available").addClass("hide");
}
}
});
});
InquriesController.php
public function inquiry()
{
$inquiry = $this->Inquiries->newEntity();
if ($this->request->is('post')) {
$emailaddress = $this->request->data['email'];
$subject = $this->request->data['subject'];
$txt = $this->request->data['txt'];
$services = $this->request->data['service_id'];
$message = "this is a message";
$inquiry = $this->Inquiries->patchEntity($inquiry, $this->request->data);
if ($this->Inquiries->save($inquiry)) {
$email = new Email('default');
$email->from(['myemail@gmail.com' => 'Testing Hotel'])
->to($emailaddress)
->subject('Inquiry Mail')
->emailFormat('html')
->send($message);
echo json_encode(['status' => 'success']);
exit;
} else {
echo json_encode(['status' => 'failed']);
exit;
}
}
}
HTML 代码片段
<div class="col-md-6 col-sm-6 col-xs-12">
<input type="text" name="contact_email" id="contact_email" class="form-control" placeholder="Email *">
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<input type="text" id="subject" class="form-control" placeholder="Subject">
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<input class="form-control" name="txtmessage" id="txtmessage" rows="8" placeholder="Messages goes here.."></input>
<div class="form-group">
<select class="form-control" id="sel1">
<option>Select a service</option>
<?php
if (!empty($ServicesInfo)) {
foreach ($ServicesInfo as $Services):
?>
<option value="<?= h($Services->name)?>"><?= h($Services->name)?></option>
<?php endforeach; } ?>
</select>
</div>
【问题讨论】:
-
其他字段也没有保存吗?
-
只有未保存的 service_id。
-
您将
$Services->name发送到service_id。也许您的数据库有 int 字段,这就是它不保存服务名称的原因。
标签: php jquery html cakephp cakephp-3.0