За последние 24 часа нас посетили 19547 программистов и 1602 робота. Сейчас ищут 904 программиста ...

Редактирование полей с помощью ajax

Тема в разделе "JavaScript и AJAX", создана пользователем viphost, 1 сен 2011.

  1. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    Решил сделать редактирование полей базы данных с помощью ajax, на страницу находятся порядка 16 инпутов вида
    HTML:
    1.  
    2. <input type="text" value"" name="ups_1">
    3. <input type="text" value"" name="nik_1">
    4.  
    5. <input type="text" value"" name="ups_2">
    6. <input type="text" value"" name="nik_2">
    7.  
    8. <input type="text" value"" name="ups_3">
    9. <input type="text" value"" name="nik_3">
    10.  
    11. <input type="text" value"" name="ups_4">
    12. <input type="text" value"" name="nik_4">
    13.  
    14. ........
    15.  
    При записи в инпут информации, скажем в 5 группке инпутов, POST передается из первого инпута т.е.
    Пишу сюда
    <input type="text" value"" name="ups_4">
    А берет информацию от сюда
    <input type="text" value"" name="ups_1">

    Как можно сделать чтобы ПОСТ передавал данные именно с той формы в которой я его изменяю, а не с первый.
    Я с js совсем не знаком и не могу никак решить свою проблему (
     
  2. Givan

    Givan Активный пользователь

    С нами с:
    31 авг 2011
    Сообщения:
    20
    Симпатии:
    1
    Если честно не совсем понял, что тебе надо.

    Во первых не value"", а value="".
    Во вторых для нормальной работы надо проставить везде id="ups_...".
    Теперь с JS

    <input type="text" value="" name="ups_4" id="ups_4"
    onFocus="if (this.value=='') {this.value=document.getElementById('ups_1').value;}" />

    т.е. при входе в поле input проверяется что поле пустое и берется значение из другого поля.
     
  3. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    Ты никак не можешь описать свою проблему, что там "решить".

    Давай так: мы поняли что на странице у тебя чемодан инпутов, сгруппированных попарно.
    Теперь опиши
    1. как должно работать, чего ты хочешь добиться
    2. как работает сейчас, что именно неправильно
     
  4. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    У меня не работает, думаю я что то не так делаю.

    По работе
    вот наглядный пример того что есть
    [​IMG]

    Получается что при отправке данных в файл, берется ups и nik с первой формы
    и получается что ups =4 а nik =0

    А должно быть так ups=3 nik=6


    подключаю на странице так

    PHP:
    1.  
    2. form method="POST" action="file.php" OnSubmit="sendRequest(); return false">
    3. <input id="ups_'.$r['id'].'" value="'.$r['id'].'" type="hidden" name="id">
    4. <input id="nik_'.$r['id'].'" value="" type="text" name="p">
    5. <input  type="submit" value="Ок">
    6.  
    В файле file.php принимаю значения пост так
    PHP:
    1.  
    2. $p = intval($_POST['p']);
    3. $id = intval($_POST['id']);
    4.  
    Т.е. скрипт то со своей стороны правильно работает, но он берет данные не и того поля от куда надо.
     
  5. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    Стоп. Это разные формы? Ты говорил что отправляешь аяксом - кинь сюда этот кусок js.
     
  6. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    Уже потерял его, нашел код где то, теперь потерял его
    У меня сейчас гетом все передается, но хочется то лучшего, чтобы было так как хочу, буду продолжать искать что то или уже в ajax изучать надо, пишут не сложно, но для меня пока дремучий лес, никогда со скриптами не работал, впрочем как и с php.

    Может есть у кого готовое решение, буду благодарен если выложите, а я пошел искать дальше, если найду что то стоящее, выложу.
    karakh, как найду выложу.
    Я вот только думаю что нужно создать какой то файл .js в него прописать условие (определение постов) и ссылку на обработчик php, думаю тогда все приниматься будет, только вот найти надо.

    Да забыл написать, формы разные, ну по айди, ну это тоже самое что редактирование новостей на сайте.
     
  7. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    Итак: в каждой форме есть два скрытых инпута - с именами p и id. А еще там есть не скрытые инпуты - у них точно другие значения атрибутов name?
     
  8. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    есть один скрытый инпут и один открыты как на скриншоте. они идут парами.
    Вот мне нужно сделать так чтобы name было разным, но при этом я не знаю как это поле передать скриптом в пост
    Вот смотрите получается так:

    PHP:
    1. <input type="hidden" value="<?=r['id'];?>" name="ups_<?=r['id'];?>">
    2.  <input type="text" value="" name="nik_<?=r['id'];?>">
    3.  
    4. <input type="hidden" value="<?=r['id'];?>" name="ups_<?=r['id'];?>">
    5.  <input type="text" value="" name="nik_<?=r['id'];?>">
    в html выглядит так
    HTML:
    1. <input type="hidden" value="1" name="ups_1">
    2.  <input type="text" value="тут что напишем" name="nik_1">
    3.  
    4. <input type="hidden" value="2" name="ups_2">
    5.  <input type="text" value="тут что напишем" name="nik_2">
    Постом в обработчике принимаю
    PHP:
    1. $ups = $_POST['ups'];
    2. $nik = $_POST['nik'];
    Вот и не хватает самого важного =) аякса, который возьмет два поля, к пример
    ups_2 и nik_2
    и передать их value в обработчик

    У меня просто никак это не получается, не могу сделать такой скрипт (
     
  9. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    а почему у тебя поле называется ups_1 а в переменную ты пишешь $_POST['ups']?
     
  10. zebra

    zebra Активный пользователь

    С нами с:
    11 июн 2011
    Сообщения:
    16
    Симпатии:
    0
    HTML:
    1.  
    2. <input type="hidden" value="1" name="ups[]">
    3.   <input type="text" value="тут что напишем" name="nik[]">
    4. .....
    5. <input type="hidden" value="2" name="ups[]">
    6.   <input type="text" value="тут что напишем22222" name="nik[]">
    7.  
    На сервере получаем массив nik + ups
     
  11. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    ну потому что если я его буду принимать так $_POST['ups_1']
    то мне придется в обработчике делать порядка 100 $_POST['ups'] вида
    PHP:
    1.  
    2. $_POST['ups_1']
    3. $_POST['ups_2']
    4. $_POST['ups_3']
    5. $_POST['ups_4']
    6. $_POST['ups_5']
    7. $_POST['ups_6']
    8.  
    9.  
    это же не разумно.

    zebra, а как его скриптом передать в обработчик? Это у меня и не получается (