Доброго времени суток дамы и господа, второй день не могу справиться, может глаз уже замылился или я чегото не понимаю, есть следующий код HTML: Код (Javascript): function go_to(driver, id){ //alert(driver); $.ajax({ type: "POST", url: "update.php", data: { driver: driver, id: id } }).done(function( msg ) { alert( "Data Saved: " + msg ); }); } переменные driver и id передаются в функцию, но почемуто не передаются в update.php Код update.php: PHP: <?php include("bd.php"); header('Content-Type: text/html; charset=utf-8'); $driver = $_POST['driver']; $id = $_POST['id']; $query1= "UPDATE orders SET driver=$driver where N=$id"; ?> Илиже я чегото не понимаю в колбасных обрезках, подскажите пожалуйста...
Интересно, как вы это определили? И что показывает консоль? Если путь к обработчику указан верно, то данные дойдут стопроцентно. --- Добавлено --- А какой результат вы хотели получить в предпоследней строке "update.php"?
url: "update.php" сам скрипт где лежит? слеш допиши /update.php, указывая путь от корня сайта Код (Javascript): .done(function() { alert( "Гуд" ); }) .fail(function() { alert( "404" ); });
Если бы данные доходили то должен был бы пройти апдейт базы данных, но этого не произошло, пробовал даже писать PHP: $query1="UPDATE orders SET driver='1'"; но всеравно никаких изменений в бд. --- Добавлено --- в тойже папке что и страница с которой он вызывается.
функция вызывается событием клика, пременные в нее передаются, проверено alert, вроде как и функция аякс выполняется, потомучто alert("Гуд"); срабатывает, но база не обновляется.
Предложение посмотреть, что происходит в консоли браузера, упорно игнорируется? Вы там увидите либо ответ сервера с 404 ошибкой, либо с 500. В первом случае - если криво прописали путь к файлу, во втором - если на сервере происходит ошибка. Отладка связки AJAX+PHP не самая приятная вещь, да. Так что консоль и трассировка запросов - ваши верные друзья. Заодно, подключите отладчик к серверсайду, чтобы перехватывать вызовы уже там.
Нууу.. Смикаешь проблему? --- Добавлено --- Не раз прислушиваясь к совету "долой отладчики" У вас всегда есть под рукой Ajax Код (Text): done( function( content ) { console.log( content ); PHP Код (Text): ini_set ( 'display_errors', 1 ); error_reporting ( E_ALL ); ini_set ( 'html_errors', FALSE ); За глаза хватит.
@ExTerZyyy, я вас спрашивал про эту строку PHP: <?php $query1= "UPDATE orders SET driver=$driver where N=$id"; Ответ не получил, поэтому повторюсь уже без намёков. Вы присвоили переменной $query1 строку с запросом, но я не вижу, чтобы вы этот запрос где-нибудь выполнили.
Это очень плохой совет, я бы даже сказал - крайне вредный. Вреднейший. И дают такие советы те, кто не могут отладчик поставить, либо понятия не имеют что это такое и зачем он нужен. Отладка через выплевывание на страницу - это ппц. Крайне медленное решение. Без трассировки, брейкпоинтов, стэктрейса, без эспрешнов, овервотча и просмотра переменных в рилтайме. Ты попробуй настоящую отладку, а не этот онанизм, за уши потом не оттянешь. Даже на стороне JS в браузере есть встроенный отладчик, карл. Со всеми вышеперечисленными богатствами.
У каждого свои взгляды, кто может тот и обходится без сторонней помощи. Тем более на данной проблеме, отладчик ставить, логика.. и Будут не только с самим кодом проблемы но и с
Спасибо, как и думал я просто тупанул, запрос сформировал но не выполнил. Если вдруг кому пригодится: JS: Код (Javascript): function go_to(driver, id){ //alert(driver); $.ajax({ type: "POST", url: "updatedriver.php", data: { driver: driver, id: id } }) .done(function() { alert( "Гуд" ); }) .fail(function() { alert( "404" ); }); }; PHP: PHP: <?php include("bd.php"); header('Content-Type: text/html; charset=utf-8'); $driver = $_POST['driver']; $id = $_POST['id']; mysql_query("UPDATE orders SET driver='$driver' WHERE N='$id'"); exit; ?> Спасибо всем что откликнулись, как говориться со стороны бывает виднее, вроде проблема оказалась тревиальна а посмотреть на нее можно с разных сторон.
Это я понял что удобно. Но по скорости из - за одного кривого ajax синтаксиса или пхпи идти ставить панельку. Да и вовсе по мне мне console по счастью хватает. Две строчки оп, и посмотрел в DOM console.
ты не ставиш панельку. Ты просто кликаешь правой кнопкой где угодно и выбираешь Inspert Element или просто жмёшь F12 И всё. И тебе даже не нужно искать это место в коде. Ничего не нужно. Все запросы видны через секунду. Полюбас это проще, чем что либо ещё. И полезнее.
Ты меня огорчаешь. В любом. Даже не так. В ЛЮБОМ НОРМАЛЬНОМ языке программирования предусмотрены инструменты для отладки полноценной. Даже в браузере инструмент отладки позволяет трейсить JS. Даже в сраном-пыльном QBasic, под DOS еще, были брейкпоинты и построчная трассировка с провалами во внутрь вызова по стектрейсу. КАРЛ, даже в QBasic!!! Чего уж говорить о всяких плюсах, шарпах, явах и тд. Просто там отладчики типа всяких GDB, из-за специфики среды выполнения, поставляются сразу с IDE. С PHP в этом плане чуть сложнее - отладчик нужно ставить самому и указать IDE, где он находится, и на каком порту его слушать. 5 минут времени потратить по мануалу. Это не "сторонняя помощь", это необходимость. Гордиться тем, что кодишь без отладки - все равно что, будучи инвалидом, гордиться тем, что у тебя нет рук и тебе приходится держать ложку ногой, при том, что тебе предложили бесплатно киберпротезы. Нет! Мне не нужна эта ваша сторонняя помощь! Я лучше буду корячиться и есть ногами! Логика в том, что это делается один раз. И на всю жизнь. И решает все проблемы. Никаких проблем не будет. Просто ты не понимаешь, что это и для чего, потому что ни на чем кроме пхп не кодил, считай, ничего слаще морковки не ел. Не понимаешь что это и, как следствие, боишься то, чего не понимаешь, и, как следствие, дистанцируешься от того, чего боишься. А зря
Много пиара и эмоций. Муху дуть не стоит. Из - за одного вывода TRUE / FALSE будем ставить целую систему? Смотри я тебе пример приведу - тоесть я эту отладочную систему нихрена не знаю и хз что она из себя представляет. Тобишь мне надо идти рыскать, что это такое и как установить, нежели прописав Код (Javascript): done( function( content ) { console.log( content ); ага, допустим JSON нужно было мне выводить но там html с ошибкой. Окай понял в чем ошибка - исправил. В тем временем как читаю мануал по установки отладки. И вас двоих не поймешь: Как ваша отладка поможет данному ТСу ? если ajax гуд, php гуд. Ошибок по фикусу нон стоп тютю. P.s: где костыли ?
короче я тож за отладку =) --- Добавлено --- как раз пошаговой отладкой это и решается. Те же вебворкеры вообще не существуют во вкладке вообще, а выполняются в отдельном потоке. Ты же не будешь лишать себя такой радости, как вебворкеры, правда?
Ты один раз потратишь 5 минут на настройку XDEBUG, и он, в итоге, в будущем, будет тебе экономить процентов 80 времени отладки от того, какое ты тратишь сейчас. Тебе жалко сейчас 5 минут, но тебе не жалко тратить час на отладку там, где с дебаггером можно управиться за 10 минут? И при этом говоришь, что у нас с логикой что-то не так? Ты бы вместо того, чтобы упираться, разобрался в теме, почитал, что да как. Кодить без отладчика - это не повод для гордости. Никто это не оценит. А времени тратится прорва. Если хочешь, я тебе видосик запишу, покажу, как это работает. И да - а ты на JS кодишь? Там отладку делаешь тоже только через выброс в консоль, при том, что в браузере есть дебаггер полноценный с экспрешнами, вотчами и прочей обвязкой? --- Добавлено --- Да, сама "установка целой системы" - это строчка в линуксовой консоли, или еще проще - в менеджере приложений в поиск вбить xdebug и кликнуть "установить". Куда проще-то? А потом в настройках IDE прописать пару циферок по мануалу.