HI как разместить форму и вернуть данные это будет массив вот так

{
"notes":'some notes',
"validUntil": '12/12/2015',
"status": 1,
"menuItemName": "HR Section",
"menuItemDesc": "gggg"
}

Мой код выглядит следующим образом

$('#add-menu-list .btn[data-attr=submit-btn]').on('click', function(){
                var formValidate = $('#add-menu-list').parsley().validate();
                validateFront();
               // console.log(formValidate);
               var menuName = $('input[data-api-attr=menuItemName]').val();
               var validUntil = $('input[data-api-attr=validUntil]').val();
               var menuStatus = $('input[data-api-attr=status]').val();
               var menuNote = $('textarea[data-api-attr=notes]').val();
               var menuDesc = $('textarea[data-api-attr=menuItemDesc]').val();

             var dataString = {
                                menuItemName : menuName,
                                validUntil : validUntil,
                                статус : menuStatus,
                                примечания : menuNote,
                                menuItemDesc : menuDesc
                            };
                if(formValidate == true){
                    alert('success');
                    console.log(menuName + validUntil + menuStatus + menuNote + menuDesc);

                    var url = "xyz.html"; // скрипт, в котором вы обрабатываете ввод формы.

                    $.ajax({
                           type: "POST",
                         // url: url,
                           dataType: "json",
                           
                           data: $(dataString).serialize(), // сериализация элементов формы.
                           success: function(data)
                           {
                               alert(data); // показать ответ
                           }
                    });

                }else{
                    alert('Validation fail ');
                }

           });

Ответы (3)

Поскольку "data" является ответом сервера, я предполагаю, что ваш сервер возвращает json-объект. В этом случае вам нужно как-то сообщить jquery's ajax, что вы ожидаете json-ответ от сервера, или самостоятельно преобразовать "data" в json-объект.

Лучше всего следовать первому варианту, чтобы вам не пришлось самостоятельно заниматься переводом. Вы можете легко сделать это, указав дополнительный параметр в вашем ajax-запросе: dataType: 'json', это поможет!

Когда у вас есть правильный объект ответа на ваш запрос, вы можете либо строчить его с помощью var string_resp=JSON.stringify(data); и затем оповестить его alert(string_resp) или вы можете получить доступ к его элементам следующим образом: alert(data.status), что приведет к оповещению поля статуса вашего объекта и т.д.

Таким образом, ваш код будет выглядеть так :

 $.ajax({
    тип: "POST",
    url: url,
    dataType: 'json',
    data: $(menuName).serialize(), // сериализация элементов формы.
    success: function(data)
    {
         alert(data); // оповестит об объекте
         alert(data.status); // оповестит поле состояния объекта, в данном случае 1
         alert(JSON.stringify(data)) // оповестит об объекте в виде строки
    }
 });

Вы отправляете только одно значение в serialize, serialize() должна быть на элементе формы, а не на элементе поля, например :

  $('#add-menu-list .btn[data-attr=submit-btn]').on('click', function(){  
       ...
        $.ajax({ 
          ...         
          data:$("#form").serialize();
          ...
          success: function(data)
                       {
                           alert(data.notes); // show response 
                           ....
                       } 

 var myObj = {
					"notes":'some notes',
					"validUntil": '12/12/2015',
					"status": 1,
					"menuItemName": "Отдел кадров",
					"menuItemDesc": "gggg"
				};
				
	myObj.toString = function()
	{
		var str = '';
		
		for (var property in myObj)
		{
			if (myObj.hasOwnProperty(property) && (property != "toString") )
			{
				str += (property + ': ' + myObj[property] + "\n");
			// сделайте что-нибудь
			}
		}

		return str;
	}
	
	alert(myObj);

2022 WebDevInsider