Работа JS с БД
Здравствуйте, я не давно начал заниматься программированием, а ещё меньше я занимаюсь JS, мне дали готовый Profile, где я должен сделать, чтобы при нажатии на кнопку сохранить, оно сохраняло без обновления страницы, что я сделал через iframe, но информацию оно не обновляет, меня попросили сделать это через JS, вопрос:
Как это можно сделать?. Код вывода карьеры if ($user["career"] != "") { echo' <font size="+1"><br><b>Работа:</b></font> <br><div class="content_right_about">Карьера: </div>'.$user["career"].''; } Ввод карьеры: Карьера: <i class="fa fa-plus"></i> </a> <div class="contentredaction"> Работа:<br> <p><textarea rows="10" cols="45" name="career" class="career" type="text" maxlength="100" value=""></textarea></p>'; ?> <script> $('.career').val("<?php echo $user['career'];?>"); </script> <?php echo' </div> </div> Так же после ввода данных, оно отправляется в другой файл, где обрабатывает эту всю информацию. if ($_POST['career'] || $_POST['career'] == ""){ mysqli_query($CONNECT, "UPDATE `users` SET `career` = '$_POST[career]' WHERE `id` = $_SESSION[USER_ID]"); $_SESSION['USER_CAREER'] = $_POST['career']; } То есть оно заносит в БД без обновления страницы, но обновляет текст только после перезагрузки страницы. |
if ($_POST['career'] || $_POST['career'] == "") - логику этого пояснить можете? "UPDATE `users` SET `career` = '$_POST[career]' - так нельзя, это дыра в безопасности, данные необходимо обезопасить. Цитата:
|
Цитата:
Для того чтобы можно было стереть данные из базы данных. >Ну а чего вы хотите - отправлять данные без перезагрузки страницы и в тоже время обновить ее? Можно, но тогда какой смысл в асинхронном запросе? Да, то есть чтобы данные обновились после редактирования, но страница не перезагружалась. Опять же повторюсь, это не мой код, мне дали уже готовый код.. Я сейчас сижу и разбираюсь в нём, лажу по форумам и так далее. |
Цитата:
if ($_POST['career'] || $_POST['career'] == "") - означает следующее if (истинна ли переменная $_POST['career'], то есть не равна пустой строке, 0, false или null (кстати, прежде чем таковую проверку делать, нужно обрезать крайние пробелы) ИЛИ не истинна ли переменная $_POST['career'], то есть равно пустой строке) - и какой же смысл в этом условии, если оно будет возвращать истину в любом случае? Цитата:
|
Цитата:
$_POST['career'] == "" - помогло решить проблему. >Чтобы обновились на странице часть ее данных, тогда еще да, это логично, но вопрос только в том какова эта часть и что за данные, вполне возможно, что лучше не тревожить Ajax. Данные о пользователе пол, карьера и т.д.. |
Цитата:
1) сервер принимает данные которые гарантировано имеют значение 0 или 1 2) сервер знает что может получить только 0 или 1 3) но тем не менее он проверяет if($_POST['a']==0 || $_POST['a']==1) Ну ежику же понятно, что это бессмысленная проверка. Вот та же самая глупость и в вашем условии. UPDATE table SET = $var - обновит поле значением $var, и если оно пустое, то пустым, если оно заполнено, то заполненным, и от логики РНР это не зависит! А ваше условие лишнее ибо оно будет выполняться в лубом случае, проверьте, и думайте: $a = ''; echo $a || $a=='' ? 'Yes' : 'No'; выполнив сперва с $a равной пустой строке, а затем заполненной любым значением. Что получается? Вы не решили проблему с чем-то там в коде, вы не разобравшись подогнали под ответ. Вот только данные пришедшие извне нельзя непосредственно подставлять в запрос, и коли учитесь, то обязательно знать этот минимум! Цитата:
А в вашем случае эти данные что, и почему их нужно обновлять? |
Цитата:
2) сервер знает что может получить только 0 или 1 3) но тем не менее он проверяет if($_POST['a']==0 || $_POST['a']==1) Ну ежику же понятно, что это бессмысленная проверка. Вот та же самая глупость и в вашем условии. UPDATE table SET = $var - обновит поле значением $var, и если оно пустое, то пустым, если оно заполнено, то заполненным, и от логики РНР это не зависит! А ваше условие лишнее ибо оно будет выполняться в лубом случае, проверьте, и думайте: $a = ''; echo $a || $a=='' ? 'Yes' : 'No'; выполнив сперва с $a равной пустой строке, а затем заполненной любым значением. Что получается? Вы не решили проблему с чем-то там в коде, вы не разобравшись подогнали под ответ. Вот только данные пришедшие извне нельзя непосредственно подставлять в запрос, и коли учитесь, то обязательно знать этот минимум! Спасибо за информацию, я обязательно почитаю это, и попытаюсь разобраться в коде. > Тут нужно пояснение - если эти данные редактирует их владелец, то значит они есть поля формы, и серверу нужно лишь их записать, сообщив пользователю, что они успешно приняты и сохранены, либо сообщить ошибку в случае неудачи. У клиента же эти данные и так будут те, что он ввел. Да, данные редактирует человек, после чего после нажатия на инпут, данные сохраняются в базу данных. То есть это возраст, имя, фамилия и так далее, в БД они заносятся под iframe, то есть страница не обновляется, после чего мне нужно чтобы эти данные выводились без перезагрузки страницы, данные могут быть разные, в основном это текст или числа, которые преобразуются в текст. Сейчас мне главное разобраться с выводом данных без перезагрузки. |
Не цитируйте все мною написанное, это и лишено смысла, и забивает пост мусором, цитируйте только то, на что оставляете свой комментарий.
Выбрасывайте iframe и, если, на сайте используется jQuery, то используйте Ajax, но если и не используется, то все равно Ajax, это не сложно. Только я ничего не понял из ответа. Еще раз поясняю о чем я спрашиваю, например, это редактирование личных данных в кабинете, при этом они могут отдаваться двумя способами: а) сначала это просто текст с кнопкой "Редактировать", которая возвращает форму, после отправки которой и в случае успешного изменения в базе, эти данные обновляются, то есть опять возвращается текст с кнопкой. Тут еще можно говорить об обновлении. б) входя в кабинет я получаю свои личные данные в виде полей формы, и если что-то надо изменить, вношу изменения и жму кнопу "Обновить". В данном случае о каком обновлении может идти речь, если в случае их успешного обновления они и так будут в форме, то есть введенное мной? А что там у вас и где, я так и не понял. |
![]() Пример редактирования. После нажатия кнопки "Сохранить", все изменения отправляются в БД, к примеру мы нажимаем кнопку сохранить после того как что-то поменяли.. ![]() После этого все данные сохраняются через iframe, но не обновляются вот тут: ![]() И только после перезагрузки страницы мы получаем эти данные. ![]() Но я хочу сделать это через JS, без использования iframe, потому что это нагружает страницу. И я спрашиваю, как это сделать, я уже много где полазил, много где смотрел видео, но так и не понял, как это реализовать в моем случае. |
То есть у вас по варианту а) - данные вводятся в таблице текстом, щелчок по соответствующей строке таблицы выводит форму с текстовым полем (или показывает уже имеющееся, но скрытое по умолчанию) и это уже есть, и работает?
По коду приведенному ранее этого не видно, если нужен ответ по конкретному, то нужно привести исходный html-код. Хотя можно и абстрактный пример показать, если сможете его в свой код адаптировать. |
Часовой пояс GMT +3, время: 23:05. |