За последние 24 часа нас посетили 19300 программистов и 1666 роботов. Сейчас ищут 1639 программистов ...

при нажатии на checkbox вставить текущую дату

Тема в разделе "JavaScript и AJAX", создана пользователем Искандар, 6 янв 2019.

  1. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    HTML:
    1. <?php
    2. include "bd_connect.php";
    3. $result=mysql_query("SELECT * FROM zayavka");
    4. ?>
    5. <meta charset="UTF-8">
    6. </head>
    7. <form method="POST">
    8. <?php while ($row=mysql_fetch_array($result)):?>
    9. <tr>
    10. <td><input type="number" name="id[]" value="<?php echo $row[0];?>"/></td>
    11. <td><input type="checkbox" id="checkAddress[]" onclick="checkAddress()"  name="checkAddress[]" value="1"></td>
    12. <td><input type="date" id="data"></td>
    13.     function checkAddress(){
    14.         var chkBox = document.getElementById('checkAddress');
    15.         var data = new Date();
    16.             if (chkBox.checked){
    17.                 document.getElementById('data').value =data.getFullYear() + "-" + data.getMonth()+ 1 + "-" + 0+data.getDate();
    18.             }
    19.             else {
    20.                 document.getElementById('data').value ='0000-00-00';
    21.             }
    22.     }
    23. </tr>
    24. <?php endwhile;?>
    25. </form>
    26. </body>
    27. </html>
    Всем добрый вечер!
    В моем коде есть скрипт который при нажатии на checkbox вставить текущую дату в поле data.
    Я проверил скрипт если checkbox и поле data не массив (по одной штуке), то тогда скрипт отлично работает...
    А в массиве не знаю какой будет код. Помогите чайнику решить задачу.
    Спасибо!
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Массивом это становится уже в пхп. А в JS это обычная строка :)
     
  3. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Не подскажете как реализовать то чего я хочу?)
     
  4. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    @Искандар, во-первых нужно вынести скрипт за пределы цикла. Во-вторых, добавить нумерацию элементов.
    PHP:
    1. <?php
    2. $i = 0;
    3. while ($row=mysql_fetch_array($result)):
    4. ?>
    5. <tr>
    6. <td><input type="number" name="id[]" value="<?php echo $row[0];?>"/></td>
    7. <td><input type="checkbox" id="checkAddress_<?=$i?>" onclick="checkAddress(<?=$i?>)"  name="checkAddress[]" value="1"></td>
    8. <td><input type="date" id="data_<?=$i?>"></td>
    9. </tr>
    10. <?php
    11. $i++;
    12. endwhile;
    13. ?>
    14. <script>
    15.   function checkAddress(num){
    16.   var chkBox = document.getElementById('checkAddress_'+num);
    17.   var data = new Date();
    18.   if (chkBox.checked){
    19.   document.getElementById('data_'+num).value =data.getFullYear() + "-" + data.getMonth()+ 1 + "-" + 0+data.getDate();
    20.   }
    21.   else {
    22.   document.getElementById('data_'+num).value ='0000-00-00';
    23.   }
    24.   }
    25. </script>
     
    Искандар нравится это.
  5. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Спасибо большое всё отлично работает!
     
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    юзай mysqli_
     
    Искандар нравится это.
  7. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Есть в планах. Но не хватает времени.
    Спасибо за совет!
     
  8. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    там в использовании почти всё то же самое.
    просто в mysql_ ресурс соединения передается вторым параметром и не является обязательным, а в mysqli_ передается перевым параметром и является обязательным.
    PHP:
    1. $connect = mysqli_connect('host', 'login', 'password', 'db_nsme'); // + четвертым параметром можно передать имя бд и не писать mysqli_select_db
    2. mysqli_set_charset($connect, 'utf8');
    3.  
    4. // и понеслась
    5. $res = mysqli_query("SELECT * FROM `tb_name` WHERE `name`='".mysqli_real_escape_string($connect, $name)."'");
    6.  
    7. $data = [];
    8. while ( $row = mysqli_feth_array( $res ) ) { // тут ресурс соединения не нужен
    9.   $data[] = $row;
    10. }
    И по хорошему, давно пора бы начать постигать проектирование приложений, а не писать кашу.
    Всё же уже два года на форуме программистов :)
    Начать хотя бы с функций.
    Смысл в том, чтобы максимально избавиться от повторяющегося кода.

    P S А от хорошего осознания переменных и функций и до объектов не далеко :)
     
    Искандар нравится это.
  9. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759