Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2011, 12:37   #21
Dmitry1983
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 80
По умолчанию

уважаемый Andkorol,
спасибо, пример понятен - опробовал и на своих данных - в статике все работает, но мне нужно передать не только параметр action со значением update, но и все введенные в форму данные... почитав сеть, я понял что за это отвечает такая команда
var qString = $("#munvybor").formSerialize();
но если я добавляю эту строчку в код - все перестает работать...

PHP код:
<?php 
  
require_once('config.php');
 
?><script type="text/javascript" src="jquery-1.6.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
 ').click(function(){
    ('base_for_jq.php',  { action : 'update'}, function(data){
            var content = '';
            $('#dynamic_table').html(''); // очистка таблицы
            for(var i = 0; i < data.num; i++){
                content = content+'<tr><td>'+data.table_data[i].first+'</td>';
                content = content+'<td>'+data.table_data[i].second+'</td>';
                content = content+'<td>'+data.table_data[i].third+'</td></tr>';
            }
            $('#dynamic_table').append(content);
        }, 'json');
    });
    // итого - 12 строк (с форматированием для читабельности)
});
</script>
<style>
#update{ width: 100px; height: auto; margin: 10px; padding: 1px; text-align: center;
         border: 1px solid blue; color: blue; cursor: pointer; }
</style>

 name="munvybor" method="post" action="">
 
  <table width="626" border="1">
    <tr>
      <th colspan="2" scope="col">Общие показатели: 
<input type="button" value="Показать" onclick="document.getElementById('general').style.display=''"><input type="button" value="Скрыть" onclick="document.getElementById('general').style.display='none'"></th>
    </tr>
    <tr id="general" style="display:none">
      <td colspan="2">
      <table align="center">
      <tr>
      <td width="303" scope="col"><div align="left">Численность населения:</div></td>
      <td width="17" scope="col"><div align="right">от</div></td>
      <td width="65" scope="col"><input name="ot_nas" type="text" size="10" /></td>
      <td width="28" scope="col">чел.</td>
      <td width="44" scope="col"><div align="right">до</div></td>
      <td width="75" scope="col"><input name="do_nas" type="text" size="10" /></td>
      <td width="44" scope="col">чел.</td>
    </tr>
      
      </table>
      
      &nbsp;</td>
    </tr>
    <tr>
      <td><input name="action" id="update" value="Показать" /></td>
      <td><input name="Submit" type="reset" value="Очистить" /></td>
    </tr>
  </table>
  <p>&nbsp;</p>
</form>

<table id="main_table" width="500" cellpadding="0" cellspacing="0" border="1" >
    <tr>
        <?php
        
for ($i=1$i <= 3$i++) { 
            echo 
'<th>Заголовок '$i'</th>';
        }
        
?>
    </tr>
    <tr>
        <td colspan="3">
            <table id="dynamic_table" width="100%" cellpadding="10" cellspacing="0" border="1" >
                <?php
                
for($i 1$i <= 3$i++){
                    echo 
'<tr>';
                    for(
$j 1$j <= 3$j++) echo '<td>Значение '$i'.'$j'</td>';
                    echo 
'</tr>';
                }
                
?>
            </table>
        </td>
    </tr>
</table>
и второй файл

PHP код:
<?php 
  
require_once('config.php');
 
?>

<?php
if(!empty($_POST['action']) && ($_POST['action'] == 'update')){
    
/**
     *  здесь может быть любой код для
     *  извлечения информации из БД или файла
     *  приведенный ниже код - для примера
     */
     
$ot_nas $_POST['ot_nas'];
$do_nas $_POST['do_nas'];

     
$query "SELECT a.uid, 
b.nas,
c.kolvo_ms

 FROM (geo_base AS a INNER JOIN geo_data as b ON b.gid=a.uid) INNER JOIN geo_omsu AS c ON c.gid=a.uid WHERE b.nas >
$ot_nas AND b.nas<$do_nas  ORDER BY b.nas LIMIT 50";

$result mysql_query($query)  or die("Invalid query: " mysql_error());
     
     
$output = array();
        
$output['num'] = mysql_num_rows($result);
     while (
$daa=mysql_fetch_array($result)) { 
        
$output['table_data'][] = array(
            
'first' => $daa[0],
            
'second' => $daa[1],
            
'third' => $daa[2],
        );
      }
    
// отправляем ответ сервера
    
echo json_encode($output);
}  

?>
если можно на данном примере...

Последний раз редактировалось Dmitry1983; 03.09.2011 в 12:54.
Dmitry1983 вне форума Ответить с цитированием
Старый 03.09.2011, 12:56   #22
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Dmitry1983 Посмотреть сообщение
мне нужно передать не только параметр action со значением update, но и все введенные в форму данные...
Вы по ссылке с описанием $.post() ходили..?

Там в примерах показано, что через эту функцию можно передать любое количество параметров, в том числе массивы.
Andkorol вне форума Ответить с цитированием
Старый 03.09.2011, 13:16   #23
Dmitry1983
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 80
По умолчанию

ну что ж я совсем свин чтоли? читал конечно...
я и говорю со статикой нет проблем...

но мне же нужно передавать условные переменные, я ж не знаю, что в форму будет введено - 1000 или 1400...

data:
Пары ключ/значение, которые будут отосланы на сервер.

вот как вычленить из формы в данном случае значение?
Dmitry1983 вне форума Ответить с цитированием
Старый 03.09.2011, 13:33   #24
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Dmitry1983 Посмотреть сообщение
вот как вычленить из формы в данном случае значение?
Фактически ваш вопрос - как получить значения из полей формы?
Вы никогда не работали с формами?

1. Если форма отправляется - т.е. происходит перезагрузка страницы:
PHP код:
$.post('post.php', { ot_nas : '<?=(!empty($_POST['ot_nas'])) ? $_POST['ot_nas'] : 0;?>', do_nas : '<?=(!empty($_POST['do_nas'])) ? $_POST['do_nas'] : 0;?>' }, function(data){
2. Если форма не отправляется - т.е. без перезагрузки страницы:
PHP код:
var form_ot = $('#id_of_ot_nas_field').val();
var 
form_do = $('#id_of_do_nas_field').val();
$.
post('post.php', { ot_nas form_otdo_nas form_do }, function(data){ 
Andkorol вне форума Ответить с цитированием
Старый 03.09.2011, 13:41   #25
Dmitry1983
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 80
По умолчанию

$('#update').click(function(){
var ot_nas2 = $("#ot_nas").val();
var do_nas2 = $("#do_nas").val();
$.post('base_for_jq.php', {action: 'update', ot_nas : ot_nas2, do_nas : do_nas2}, function(data){

работает... СПАСИбо!!! главное получить "пинка" и все работает спасибо еще раз...

а можно же наверное не руками прописывать ot_nas : ot_nas2, do_nas : do_nas2 - вот это...

а проблема была в том, что в форме не было id - только name

п.с.))) сделал не читая вашего предыдущего сообщения но сделал почти также значит не совсем все потеряно)))) спасиб за "пинок"

Последний раз редактировалось Dmitry1983; 03.09.2011 в 13:43.
Dmitry1983 вне форума Ответить с цитированием
Старый 03.09.2011, 13:51   #26
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Вы, главное, не забывайте обрабатывать данные из формы - XSS, SQL-injection и всё такое.

А за "пинками" обращайтесь, если что - нам не жалко...))))
Andkorol вне форума Ответить с цитированием
Старый 03.09.2011, 14:00   #27
Dmitry1983
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 80
По умолчанию

я не хочу говорить ВСЕ, но задача поставленная в этом посте наконец-то реализована! уверен, что криво, но реализована! две таблицы на одной странице есть, быстро и шустро! теперь бум докручивать а главное стал понятен принцип...
всем спасибо, Andkorol - СПАСИБО!!!!!!
Dmitry1983 вне форума Ответить с цитированием
Старый 03.09.2011, 14:01   #28
Dmitry1983
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 80
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Вы, главное, не забывайте обрабатывать данные из формы - XSS, SQL-injection и всё такое.
а вы - жестокий)))) ну зачем нужно было это писать?)) чтоб я спросил что это такое?)) и зачем это нужно? лан это уже флуд)
Dmitry1983 вне форума Ответить с цитированием
Старый 03.09.2011, 14:28   #29
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Dmitry1983 Посмотреть сообщение
а вы - жестокий)))) ну зачем нужно было это писать?)) чтоб я спросил что это такое?)) и зачем это нужно? лан это уже флуд)
Флуд - не флуд, а вам обязательно нужно знать о возможных способах атаки на ваши скрипты.

MUST READ:
Безопасность PHP скриптов
Виды взломов сайтов

Подробности по каждому способу легко нагуглить, при необходимости.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
диалоговое окно при нажатии на кнопку sbury JavaScript, Ajax 5 02.02.2011 15:31
Уничтожить кнопку при нажатии на неё же. NoName_emaNoN Общие вопросы Delphi 28 22.01.2011 15:42
при нажатии на кнопку Delete vik85 Помощь студентам 0 20.12.2009 20:34
Скрытие интерфейса при нажатии на кнопку kostghost Общие вопросы Delphi 3 28.08.2009 11:10
прокрутка при нажатии на кнопку neformat JavaScript, Ajax 0 20.06.2008 20:40