我正在學習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