LINUX.ORG.RU

Пустой $_POST ($.post jquery)

 , ,


0

1

Добрый день! Никак не могу понять, в чем ошибка. Есть функция

function edit_note(el){ var type = «edit»; var id = $(el).parent('td').parent('tr').attr('id'); var name = $(«#»+id+«_name»).val() ; var birth = $(«#»+id+«_birth»).val() ; var level = $(«#»+id+«_level»).val() ; var style = $(«#»+id+«_style»).val() ; $.post(«mem_edit.php» ,{name:name, birth :birth,level:level,id:id, style:style,type:type }, function(data){ alert(data); location.reload(); }); }

Переменные создаются корректно, alert их выводит.

Обработчик mem_edit.php вызывается, но пишет $_POST как пустой массив. Соответственно, работы никакой. В чем ошибка и как это исправить? Подскажите, пожалуйста

Ответ на: комментарий от anonymous

Код страницы

<?php session_start(); header(«Content-type: text/html; charset=utf-8»); include "../head.php"; ?> <html class=«no-js» lang=«en»> <head> <title>Система управления контентом</title> </head> <body data-spy=«scroll» data-target=".bs-docs-sidebar"> <style type=«text/css»> body { padding-top: 70px; padding-bottom: 70px; } </style> <? include "../panel.php"; ?> <div id=«module_content» class=«container»> <? $query= mysql_query(«SELECT `id_teacher`,`Name`,`Style`,`Level`,`BirthDate` FROM `teacher` »); $info= array(); for ($i = 0; $i < mysql_num_rows($query); $i++) { $row = mysql_fetch_array($query); array_push($info, $row); } ?> <h1><align=«center»> Редактирование списка хореографов </h1> <button class=«btn btn-primary» name=«add_mem» id = «add_mem» ><span class=«glyphicon glyphicon-plus»></span> Добавить человека</button> </br></br>

<div class=«new_desc2»> <form action=«» id=«teacher»> <table id=«list_news»> <thead><tr><th>Имя</th><th>Дата рождения</th><th>Уровень</th><th>Стиль</th><th> </th></tr></thead> <tbody> <?if(!empty($info)){foreach($info as $note){?> <tr id=«<?echo $note['id_teacher'];?>»> <td><textarea id=«<?echo $note['id_teacher'];?>_name» rows=«5» cols=«24» ><?echo $note['Name'];?></textarea></td> <td><input type=«text» id=«<?echo $note['id_teacher'];?>_birth» value =«<?echo $note['BirthDate'];?>»/></td>

<td><input type=«text» id=«<?echo $note['id_teacher'];?>_level» value =«<?echo $note['Level'];?>»/></td>

<td><input type=«text» id=«<?echo $note['id_teacher'];?>_style» value =«<?echo $note['Style'];?>»/></td>

<td> <button name=«edit» class=«btn btn-success edit» type=«submit» onclick=«edit_note(this);» >Сохранить</button> </br></br> <button name=«delete» class=«btn btn-danger del» onclick=«del_note(this);» >Удалить</button>

</td></tr> <?}} ?> </tbody> </table> </form> </div> </div>

</body> </html>

<script>

function edit_note(el){ var id = $(el).parent('td').parent('tr').attr('id'); var name = $(«#»+id+«_name»).val() ; var type = «edit»; var id = $(el).parent('td').parent('tr').attr('id'); var name = $(«#»+id+«_name»).val() ; var birth = $(«#»+id+«_birth»).val() ; var level = $(«#»+id+«_level»).val() ; var style = $(«#»+id+«_style»).val() ; $.post(«mem_edit.php» ,{name:'«'+name+'»', birth :birth,level:level,id:id, style:style,type:type }, function(data){ alert(data); location.reload();	});

}

function del_note(el){ var type = «delete»; var id = $(el).parent('td').parent('tr').attr('id');; $.post(«mem_edit.php» ,{type:type, id:id }, function(data){ alert(data); location.reload(); }); }

$('#add_mem').click(function(){ $.post(«mem_edit.php»,{type:«add» }, function(data){ alert(data); location.reload(); }) }) </script>

<script src="http://whitebal/js/jquery.js"></script> <script src="http://whitebal/js/bootstrap.min.js"></script>
nottambulo ()
Ответ на: комментарий от anonymous

Обработчик

<? include "../connect.php"; print_r( $_POST); if ($_POST['type'] == «edit» ) {

$query = mysql_query(" update `member` set `name`='".$_POST['name'].«', `birthdate` ='».$_POST['birthdate'].«' , `time` ='».$_POST['time'].«' , `id_group`='».$_POST['id_group'].«' where `id_member`= ».$_POST['id']); if (! $query){echo «Произошла ошибка добавления»;} else {echo 'Изменения сохранены.';} }

if ($_POST['type'] == «delete» ) { $query = mysql_query(«delete from `member` where `id_member`= ».$_POST['id']); if (! $query){echo «Произошла ошибка удаления»;} else {echo 'Изменения сохранены.';} } if ($_POST['type'] == «add» ) { echo «k»; $query = mysql_query(" insert into `member` values ( ) ") ; if (! $query){echo «Произошла ошибка добавления»;} else {echo ' ';} } ?> 
nottambulo ()

"... where `id_member`= ".$_POST['id']

Я думаю тебе надо быстро и решительно идти на завод.

anonymous ()
Ответ на: комментарий от anonymous

В эту ветку я пока еще не захожу, тк условие не выполняется

 $_POST['type'] == "edit" 

А во-вторых, что не так c этой строкой?)))) Объясните, пожалуйста

nottambulo ()
Ответ на: комментарий от nottambulo

Во первых, почему ты уверен что пост происходит и именно с нужным телом? Браузер что отсылает? Может там application/json в Content-Type.

Во вторых, https://xkcd.com/327/

anonymous ()
Ответ на: комментарий от anonymous

Я думаю тебе надо быстро и решительно идти на завод.

Не надо. В отличие от веба на заводе при несоблюдении ТБ может, как минимум, пальцы оторвать

r_asian ★☆☆ ()

вынес все SQL-запросы в <HEAD>, молодец :))

kelyar ★★★★★ ()
Ответ на: комментарий от macsucks

Не знаю ни одного человека, который с рождения программировал как Боженька. Надо и стадию говнокода пройти. Особенно не работающего)

И вроде как у меня нет запросов в head. там title только

nottambulo ()
Ответ на: комментарий от nottambulo

Обычно те, кто начинает «как ты», на том же уровне и остаются — работает и хер с ним. Главное самому понятно чо написано.

anonymous ()
Ответ на: комментарий от macsucks

К сожалению, пхп и без них говно как ЯП. Можно написать хорошее вопреки, но не благодаря.

anonymous ()
Ответ на: комментарий от nottambulo

Не знаю насколько тебе поможет то что я щас скажу, но

1. Удаляй к чертям то что ты уже написал. Серьезно. Это пиздец. 2. Возьми нормальный фреймворк. Что больше понравится - Yii2 / Laravel / Symfony2.

Объясняю. Во-первых мешать html, css, sql и php в одном файле это порочная практика. Ни одна приличная ( и даже подавляющее большинство неприличных, лол ) контора так НЕ делает. Во-вторых ты ничего не проверяешь. Есть ли элемент в массиве, нормальные ли данные в запросе и присутствуют ли они там - вообще насрать. Один чих и все сломается.

Честно говоря мне сложновато говорить что конкретно плохо - все плохо. Очень. Категорически не рекомендую показывать сей высер в качестве своего примера кода при устройстве на работу.

И да, насчет стадии быдлокодинга. Она действительно есть у всех. Но конкретно ЭТО является просто абсолютом ужасного кода на PHP. Смотри как бы в палату мер и весов не загребли, лол.

anonymous ()
Ответ на: комментарий от nottambulo

Согласен. Потом пройдешь стадию PHP и начнешь что-нибудь другое.

Razip ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.