Вопрос № 64222: Добрый день уважаемые эксперты.
Кто нибудь видел админку Joomla,Mambo? В них есть такая штука что выводится табличка, например с новостями, и в левой колонке есть чекбоксы, т.е. несколько выделил и сразу удалил,ну понятно что здесь JAvaScript исп...Вопрос № 64232: Ну что я делаю не так???! В базу данных не пишет. Хотя уже достижение, не выдаёт и ошибок!
предыдущие вопросы, мои и других
http://rusfaq.ru/?Step=info&Action=Question&ID=63987
(с этого у меня всё началось)
http://rusfaq.ru/info/quest...Вопрос № 64259: Здравствуйте. Как реализовать на PHP следующее: 1)при нажатии на html ссылку, значение переменной к примеру $i увеличивалось на единицу. 2) На html страницы лежат несколько Checkbox-ов с неизвестным именем, как узнать какие из них выбраны (checked=tr...Вопрос № 64269: Нужно исправить ошибки. Делал простой скрипт и форму для отправки сообщений на емайл. В приложении коды. Запускал
форму вводил данные и через гет метод данные передовались в строку браузра. Может что я не так допонял....
Вопрос № 64.222
Добрый день уважаемые эксперты.
Кто нибудь видел админку Joomla,Mambo? В них есть такая штука что выводится табличка, например с новостями, и в левой колонке есть чекбоксы, т.е. несколько выделил и сразу удалил,ну понятно что здесь JAvaScript используется. Пытался достать это из этих кмс, но сложновато. Нет ли у кого подобных скриптов или кто знает на них линки, очень бы хотелось научится создавать такие же.
Заранне благодарю.
Отправлен: 26.11.2006, 00:18
Вопрос задал: Nook (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Солошенко Александр
Здравствуйте, Nook!
Не совсем понимаю при чем тут JavaScript, я в своей CMS это реализовал без всякого JavaScript на чистом PHP, пример можно посмотреть в приложении. Правда у меня так реализуется не удаление, а включение/отключение модулей, но смысл тот же.
Сначала выводится форма с таблицей, в которой все элементы управления имеют нумерацию в массиве. Таким образом нас интересует параметр "param[$i][active]"? который соответствует флажкам, чтобы определить id строки в таблице в форме есть скрытое поле "param[$i][id]". После отправки формы скрипту просто проверяем, при каких $i у нас установлен флажок и удаляем соответствующие записи из таблицы.
PS Для простоты пример написан для PHP с включенной опцией register_globals
Надеюсь я правильно понял вопрос :-)
Удачи!
Приложение:
Ответ отправил: Солошенко Александр (статус: 1-ый класс)
Ответ отправлен: 26.11.2006, 09:37
Вопрос № 64.232
Ну что я делаю не так???! В базу данных не пишет. Хотя уже достижение, не выдаёт и ошибок!
предыдущие вопросы, мои и других
http://rusfaq.ru/?Step=info&Action=Question&ID=63987
(с этого у меня всё началось)
http://rusfaq.ru/info/question/64049
(на это даже никто не ответил, это как я пытался читать)
http://rusfaq.ru/?Step=info&Action=Question&ID=63731
http://rusfaq.ru/?Step=info&Action=Question&ID=60367
Была у меня мысля, что вероятно нужно как-то определить зарание таблицу, но об этом не встретил ни одного упоминания. Нашел только команду для создания собственно самой базы.
Ответ отправил: Загиров Рустам (статус: Специалист)
Ответ отправлен: 26.11.2006, 03:10 Оценка за ответ: 4 Комментарий оценки: Спасибо! Кажись работает. Не сразу понял чо с этим делать, пришлось думать.
Отвечает: Марк Крейн
Здравствуйте, Артём Талипов!
Немножко поясню по сути кода, чтобы понятней было.
Когда вы проверяете успешность занесения в базу, не делайте так:
$res=mysql_query($query);
if ($res) echo "Данные занесены в БД.";
else echo "Не возможно записать данные в БД";
Дело в том, что $res вы уже присвоили значение mysql_query($query). И когда вы делаете вот это: if ($res) вы, по сути, говорите "а равна ли $res 0 или false?". Данная переменная у вас уже определена и ненулевая. Поэтому надёжней (и вернее) использовать следующий код в этом случае:
$res=mysql_query($query);
if (mysql_errno()==0) {echo "Данные занесены в БД.";}
else {echo "Не возможно записать данные в БД";}
ну или так:
$res=mysql_query($query);
if (mysql_error()=='') echo "Данные занесены в БД.";
else echo "Не возможно записать данные в БД";
mysql_errno() выдаёт номер последней ошибки SQL. Если 0, то всё нормально.
mysql_error() выдаёт текст последней ошибки SQL. Соответственно, если пусто, то всё нормально.
Ответ отправил: Марк Крейн (статус: Заблокирован)
Ответ отправлен: 26.11.2006, 05:52 Оценка за ответ: 5 Комментарий оценки: Я воспользовался кодом который предложил Райкин Сергей Александрович. И спасибо за замечание. информативно!
Отвечает: Бородин Александр Олегович
Здравствуйте, Артём Талипов!
Если нет таблицы, в которую Вы хотите вставить данные, то никуда Вы их и не вставите. Сначала надо создать таблицу. Сделать это лучше один раз, дабы не потереть при вторичном создании уже имеющиеся данные. Синтаксис в приложении.
Примечания.
1) Текст, написанный большими буквами, может быть написан и маленькими - это регистронезависимый синтаксис SQL. То, что написано маленькими буквами, может быть написано только в одном регистре(но не важно в каком именно).
2) Названия столбцов в апострофах - мне сложно сказать, насколько это принципиально, я как и Вы - программист-любитель(даже, можно сказать, "чайник"), но у меня ни одно приложение без заключения названий в апострофы, не шло.
3) Я добавил в таблицу столбец `user_id`. Вы наверняка обращали внимание, что у пользователей, помимо логинов, паролей, есть еще какие-то непонятные номера. Вот этот номер и есть `user_id`. Он не обязателен, но желателен. С таблицей(а значит, и с ее содержимым - людьми) в разы легче работать, больше порядка.
Надеюсь, я Вам помог.
Приложение:
--------- Ничто не сближает людей так, как совместное преступление. Или покупка телевизора.
Ответ отправил: Бородин Александр Олегович (статус: 2-ой класс)
Ответ отправлен: 27.11.2006, 07:52 Оценка за ответ: 5 Комментарий оценки: Спасибо, тоже помогло.
Вопрос № 64.259
Здравствуйте. Как реализовать на PHP следующее: 1)при нажатии на html ссылку, значение переменной к примеру $i увеличивалось на единицу. 2) На html страницы лежат несколько Checkbox-ов с неизвестным именем, как узнать какие из них выбраны (checked=true)? Заранее спасибо.
Отвечает: Барков Илья Андреевич
Здравствуйте, Сергей Николаевич!
1) я бы реализовал это с помощии технологии AJAX.
примерно так : <a href='/somelink' onclick='incrase({$id})'>Link</a>
в функции incrase пишем примерное следующее:
function incrase(id) {
var req = new Subsys_JsHttpRequest_Js();
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.responseText) {
alert('id #'+id+' incrased');
}
}
}
req.open('GET', './ajax.php?incrase='+id, true);
req.send();
}
в файле ajax.php пишем:
if (numeric($_GET['incrase'])) {
// вызов функции с обработкой инкрейса. в переменную передается ID (ну или что захотите)
// операции с БД. апдейт поле, лала.
echo 'done';
}
2. Перебор чекбоксов:
Для начала лучше выделать чекбоксы в отдельный блок (div)
Примерно так:
<div id='inputs'>
<input ...><input ...><input ...>
</div>
ну и вот JavaScript функция:
function asd() {
var block=document.getElementById('inputs');
for (var i=0;i<document.getElementsByTagName("INPUT").length;i++) {
if (block.getElementsByTagName("INPUT")[i].checked( {
var checked_index=i;break;
var val=block.getElementsByTagName("INPUT")[i].value;
}
alert(checked_index); // в этой переменной будет индекс нужного инпута.
// в переменной val будет значение выбранного чекбокса.
// единственное, не помню точно, в начале массиа либо .length либо .count. вроде ленгтх )
}
}
Удачи!
Ответ отправил: Барков Илья Андреевич (статус: 4-ый класс)
Ответ отправлен: 26.11.2006, 13:17
Вопрос № 64.269
Нужно исправить ошибки. Делал простой скрипт и форму для отправки сообщений на емайл. В приложении коды. Запускал форму вводил данные и через гет метод данные передовались в строку браузра. Может что я не так допонял.
Приложение:
Отправлен: 26.11.2006, 13:32
Вопрос задал: _Master_ (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Марк Крейн
Здравствуйте, _Master_!
В приложении мой вариант скрипта.
При этом надо предусмотреть, что именно пользователь напишет в поле from_email. Он же теоретически может всё что угодно написать. Поэтому я рекомендую ещё дополнительно проверить это поле. На PHP, к сожалению, так сразу не приходит в голову вариант, поэтому привожу функцию на JavaScript.
function isEmail(email){
var foundAt = false
var foundDot = false
for (var i=0; i
{
if (email.charAt(i) == "@")
{
foundAt = true
}
else if (email.charAt(i) == ".")
{
foundDot = true
}
}
if (foundAt && foundDot)
{
return true
}
else
{
return false
}
}
Удачи!
Приложение:
Ответ отправил: Марк Крейн (статус: Заблокирован)
Ответ отправлен: 26.11.2006, 15:21