На данный вопрос уже ответили:
Ajax передает undefined через POST, хотя переменные определены.
JS:
function addProduct() {
var itemName = $('#newItemName').val;
var itemPrice = $('#newItemPrice').val;
var itemCatId = $('#newItemCatId').val;
var itemDesc = $('#newItemDesc').val;
var postData = {itemName: itemName, itemPrice: itemPrice,
itemCatId: itemCatId, itemDesc: itemDesc};
$.ajax({
type: 'POST',
async: false,
url: "/admin/addproduct/",
data: postData,
dataType: 'json',
success: function (data) {
alert (data['message']);
if (data['success']){
$('#newItemName').val('');
$('#newItemPrice').val('');
$('#newItemCatId').val('0');
$('#newItemDesc').val('');
}
}
});
}
И экшен который должен получить данные от этой функции:
function addproductAction(){
$itemName = $_POST['itemName'];
$itemPrice = $_POST['itemPrice'];
$itemDesc = $_POST['itemDesc'];
$itemCat = $_POST['itemCatId'];
$res = insertProduct($itemName, $itemPrice, $itemDesc, $itemCat);
if($res){
$resData['success'] = 1;
$resData['message'] = 'Изменения успешно внесены';
} else {
$resData['success'] = 0;
$resData['message'] = 'Ошибка изменения данных';
}
echo json_encode($resData);
return;
}
Вот откуда должны передаться переменные:
<table>
<tr>
<td>
<input type="edit" id="newItemName" value=""/>
</td>
<td>
<input type="edit" id="newItemPrice" value=""/>
</td>
<td>
<select id="newItemCatId">
<option value="0">Главная категория</option>
{foreach $rsCategories as $itemCat}
<option value="{$itemCat['id']}">{$itemCat['name']}</option>
{/foreach}
</select>
</td>
<td>
<textarea id="newItemDesc"></textarea>
</td>
<td>
<input type="button" value="Сохранить" onclick="addProduct();"/>
</td>
</tr>
</table>
При проверке переменных $itemName
другие переменные оказываются не определены.
Может ajax написан не правильно? Потому что в базу заносятся undefined
значения.
Что если попробовать словить данные в
file_get_contents("php://input")
Проблемы с передачей JSON данных по Ajax
Или передавайте не JSON'ом, а обычным текстом:
Уберите JSON.stringify и ловите $_POST['requestData']
Проблемы с передачей JSON данных по Ajax
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Опытные web-программисты, расскажите, пожалуйста, насколько актуален AJAX в 2017 и есть ли какая-нибудь альтернатива данной технологииСам я чайник,...
У меня получилась очень длинная регулярка, я её сделал, через или (|), как можно сократить?
Здравствуйте, создал сайт с помощью MVC, теперь возник вопрос как к данному сайту подключать, картинки, скрипты оффлайнВедь он обрабатывает...