siv1987

siv1987
Рейтинг
427
Регистрация
02.04.2009
saykel:
ресурсов не жрет php?

Все зависит от того, на сколько будет оптимален ваш код.

Пхп "лучше". Пхп удобнее в разработке и поддержке кода, имхо. Но у перла свои спецефические задачи. Тема холивар.

Не важно сколько модулей там подгружаются, важно что эти модули отрабатывают.

Да, примерно такого вида должен получится код. Не понятно только что там за return exit. Дальше уже зависит в каком контексте работает ваше приложение. Естественно здесь только часть которая относится к сути задачи, остальное уже нужно вам настроить - подключение к бд, подключение js скриптов (jquery) и тп.

Чо чо вывести? Все что внутри <!-- --> в браузере интерпретируется как комментарий. Либо вы заключаете скрипт в комментарий, и он естественно не отрабатывает, либо выводите скрипт как "скрипт".

Для ТС'а проще именно формами для каждой записи. Массивом он будет всю форму гнать туда сюда, а тогда уже нет смысла ставить для каждой строки отдельный "изменить".

Можно сохранить и по одной записи аяксом, а можно все скопом отправив форму обычным методом.

Имена параметров можно генерировать и по такому принципу

name='title_edit[{$row['id']}]'

name='text_edit[{$row['id']}]'

name='id[]'

И обращаться к ним

foreach($_POST['id'] as $id){

$id = intval($id);

$title = $_POST['title_edit'][$id];

$text = $_POST['text_edit'][$id];

}


<?php

while($row = mysql_fetch_array($select)){
echo "<div class='rows'><input type='text' name='title_edit[]' value='{$row['title']}' >&nbsp;<input type='text' name='text_edit[]' value='{$row['text']}'><input type='hidden' name='id[]' value='{$row[id]}'><input type='submit' value='Изменить' name='test' class='submit'></div>";
}
?>
<script>
$('.submit').click(function(){
var data = '';
$(this).parent().find('input').each(function(){
data += this.name+'='+encodeURIComponent(this.value)+'&';
});
$.post('/edit.php', data, function(res){
alert('Saved');
});

return false;
});
</script>


if(isset($_POST['test'])){
$len = is_array($_POST['id']) ? count($_POST['id']) : 0;

for($i=0; $i<$len; $i++){
$id = intval($_POST['id'][$i]);
$title = $_POST['title_edit'][$i];
$text = $_POST['text_edit'][$i];

mysql_query("UPDATE news SET title='".escape($title)."', text='".escape($text)."' WHERE id='{$id}'");
}
}

function escape($str){
return mysql_real_escape_string($str);
}

Как вам удобнее.

410 Forbidden

RewriteCond %{THE_REQUEST} //

RewriteRule ^ - [F,L]

404 Not found

RewriteCond %{THE_REQUEST} //

RewriteRule ^ - [R=404,L]

+Query string

RewriteCond %{QUERY_STRING} !^$ [OR]

RewriteCond %{THE_REQUEST} //

RewriteRule ^ - [R=404,L]

Добавьте флаг F, будет без редиректа, или R=404 для 404 ответа

Одного флага L в данном случае будет не достаточно, так как если был произведен реврайт цикл запуститься снова в любом случае, даже если он был остановлен флагом L - last.

Поэтому, в этому случае либо устанавливают дополнительную переменную окружения к реврайту, либо проверяют серверную переменную %{THE_REQUEST}, либо, самый простой способ на мой взгляд, проверять переменную окружения ENV REDIRECT_STATUS которая пуста если не был произведен реврайт.

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteRule ^(.+)\.php$ /$1.html [R=301,L]

Добавлять нужно перед реврайтом, а чтобы не запутаться можно сразу после RewriteEngine On

RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteRule ^(.+)\.php$ /$1.html [R=301,L]

RewriteRule ^(.+)\.htm$ $1\.php [NC,L]

Я умею писать google api, но я пока не понял о чем речь.

Всего: 6568