我正在学习Symfony2框架,我想用一个非常简单的表单(一个文本字段)创建一个简单的应用程序,并将提交的数据(使用ajax)保存在一个非常简单的表中在数据库上。我的目标是在每次发送和保存新提交的数据时查看和更新整个数据库表(在同一页面使用ajax)。 这是我做了到现在为止,我不能够保存任何和500Symfony2:使用ajax调用保存数据库
DefaultController.php
class DefaultController extends Controller
{
public function indexAction(Request $request)
{
$item = New Item();
$form = $this->createForm(new ItemType(), $item, array('action'=>$this->generateUrl('vendor_name_simple_homepage'),'method'=>'POST'));
$form->add('Submit','submit',array('label'=>'Add'));
$form->handleRequest($request);
if ($request->isXmlHttpRequest()) {
$this->saveAction($item);
}
return $this->render('VendorNameSimpleBundle:Default:lista.html.twig',array('form' => $form->createView()));
}
public function saveAction($item){
$em = $this->getDoctrine()->getManager();
$em->persist($item);
$em->flush();
return new Response('success');
}
}
jQuery的脚本
<script>
$(document).ready(function() {
$('form').submit(function(event) {
// prevents the browser from "following" the link
event.preventDefault();
var $url = $("form").attr("action");// + '.json';
var $value = $('#item_itemName').val();
$.ajax({
type: "POST",
url: $url,
data: $value,
success: function(data) {
$('ul').html(data);
}/*,
dataType: 'json'*/
});
});
});
</script>
编辑:这是网络控制台输出,有在JS 控制台而执行发生
例外,没有错误 'INSERT INTO项(ITEMNAME) VALUES(?)' 使用参数[空]: SQLSTATE [23000]:完整性约束 冲突:1048列“ITEMNAME”不能为空(500内部服务器 错误)
UPDATE:看来请求发送成功,但我不能访问 (或我不t完全知道该怎么做)到内容请求,因为 控制器收到这个Re任务奖励:
/app_dev.php/myapp/path/ HTTP/1.1 Accept: / Accept-Encoding: gzip, deflate Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3 Cache-Control: no-cache Connection: keep-alive Content-Length: 11 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Cookie: PHPSESSID=qhou8f9lias0i9fh3besdpbii7 Host: localhost:8000 Pragma: no-cache Referer: http://localhost:8000/app_dev.php/myapp/path/ User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0 X-Php-Ob-Level: 1 X-Requested-With: XMLHttpRequest MyInputData
检查控制台是否有错误。 –
您的JavaScript控制台中的错误是什么? – Hakim