За последние 24 часа нас посетили 55702 программиста и 1792 робота. Сейчас ищут 914 программистов ...

Как узнать что передалось

Тема в разделе "JavaScript и AJAX", создана пользователем igroc, 30 сен 2014.

  1. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    есть checkbox
    echo '<td><input type="checkbox" class="checkbox" name="ch" id="'.$rows["id"].'" /></td>';

    создается куча checkbox

    есть обработчик
    <a href="" onclick="
    var arr = [];
    $(\'input[name=\'ch\']:checked\').each(function() {arr.push($(this).attr(\'id\'));});
    $.post(\'../rez/del.php\',{listId: arr})
    "><img src="../images/del.gif" width="15" height="15" alt="удалить" title="удалить"></a>';

    по нажатию на картинку на del.php должен попасть массив listId в котором через запятую id

    как его получить и обработать?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ...name="ch[]" value="' . $rows['id] . '"...
    Или
    ...name="ch[' . $rows['id] . ']...

    А id он для другого.
     
  3. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    сделал так
    echo '<td><input type="checkbox" class="checkbox" name="chbox[' . $rows["id"] . ']" id="'.$rows["id"].'" /></td>';

    Добавлено спустя 3 минуты 32 секунды:
    как теперь сделать массив chbox
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Лучше тогда используй data-атрибуты
     
  5. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    не понял как

    Добавлено спустя 15 минут 27 секунд:
    echo '<td><input type="checkbox" class="checkbox" name="chbox[]" value="' . $rows["id"] . '" id="'.$rows["id"].'" /></td>';
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Я с телефона. Загугли. Там очень просто.
     
  7. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    ничего не нашел
    в данный момент есть
    echo '<td><input type="checkbox" class="checkbox" name="chbox[]" value="' . $rows["id"] . '" id="'.$rows["id"].'" /></td>';

    и

    <a href="" onclick="



    var chbox = new Array();
    $("input[@name=\'chbox[]\']:checked").each(function() {selectedItems.push($(this).val());});



    $.ajax({
    type: \'POST\',
    url: \'../rez/del.php\',
    data: chbox
    });






    "><img src="../images/del.gif" width="15" height="15" alt="удалить" title="удалить"></a>';


    ничего не получается
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    В функцию засунь
     
  9. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    засунул
    Код (Text):
    1.  
    2. function delall(){
    3.  
    4.  
    5. //http://www.cyberforum.ru/javascript-jquery/thread1098402.html
    6.  
    7. var chbox = $(\':checkbox\').map(function(i,el){
    8.         if($(el).prop(\'checked\')){
    9.             return $(el).val();
    10.         }
    11.     }).get().join(\',\');
    12.     console.log(chbox);
    13. });
    14.  
    15. //var chbox = new Array();
    16. //$("input[@name=\'chbox[]\']:checked").each(function() {selectedItems.push($(this).val());});
    17.  
    18.  
    19.  
    20. $.ajax({
    21. type: \'POST\',
    22. url: \'../rez/del.php\',
    23. data: \'chArr=chbox\',
    24. cashe: false,
    25. success: function(data) {}
    26. });
    27.  
    28.  
    29. }
    30.  
    31. <a href="" onclick="delall();"><img src="../images/del.gif" width="15" height="15" alt="удалить" title="удалить"></a>';
    не работает

    Добавлено спустя 2 минуты 14 секунд:
    в файле del.php

    <?
    // строка, которую будем записывать
    $text = "Какой-то текст";
    // открываем файл, если файл не существует,
    //делается попытка создать его
    $fp = fopen("file.txt", "w");
    // записываем в файл текст
    fwrite($fp, $text);
    // закрываем
    fclose($fp);
    ?>


    если файл появился запрос отправился
    а у меня не появляется

    Добавлено спустя 9 минут:
    function delall(){





    $.ajax({
    type: 'POST',
    url: '../rez/del.php',
    data: 'chArr=chbox',
    cashe: false,
    success: function(data) {}
    });


    }


    вот так появляется

    function delall(){


    //http://www.cyberforum.ru/javascript-jquery/thread1098402.html

    var chbox = $(':checkbox').map(function(i,el){
    if($(el).prop('checked')){
    return $(el).val();
    }
    }).get().join(',');
    console.log(chbox);
    });

    //var chbox = new Array();
    //$("input[@name=\'chbox[]\']:checked").each(function() {selectedItems.push($(this).val());});



    $.ajax({
    type: 'POST',
    url: '../rez/del.php',
    data: 'chArr=chbox',
    cashe: false,
    success: function(data) {}
    });


    }

    вот та нет
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Выложи куданить
    Не понятно нифига
     
  11. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    непонял
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    видимо ты не то отправляешь.

    короче, надо тебе учиться дебагать.
     
  13. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    сейчас у меня так
    function delall(){

    var checks = new Array();
    $("input[name='chbox']:checked").each(function()
    {chbox.push($(this).val());
    });

    var data=JSON.stringify(checks);

    $.ajax({
    type: 'POST',
    url: '../rez/del.php',
    dataType: 'json',
    data: {checks: data},
    success: function(data) {}
    });


    }

    в файле только []

    массив не передает
    что не так?
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    checks: data не так
     
  15. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    а как?
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну немножечко усилий, чувак. ну поищи-подумай. что это за синтаксис с двоеточием? где там что?
     
  17. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    checks - уходит в обработчик $_POST['checks']

    data - массив

    у меня в data получается [] а нужно [1,2, и т.д.](выбранные checksbox)
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    где взял его?
     
  19. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    как правильно прописать
    var dat=$('input:checkbox:checked').map(function() {return this.value;}).get();

    если мне нужны
    echo '<td><input type="checkbox" class="checkbox" name="chbox[]" value="' . $rows["id"] . '" id="'.$rows["id"].'" /></td>';

    а то собирает все checkbox со страницы

    Добавлено спустя 45 секунд:
    $.ajax({
    type: 'POST',
    url: '../rez/del.php',
    //dataType: 'json',
    data: 'checks='+dat,
    //success: function(data) {}
    });

    прописал так
    приходит
    405,on,407,on,412,on,413,on,414,on,415,on,416,on,1
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты на вопрос ответь. ты не знаешь ответа, так и пиши "где взял - не знаю".
     
  21. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    все разобрался
    echo '<td><input type="checkbox" class="checkbox" name="chbox" value="' . $rows["id"] . '" id="'.$rows["id"].'" /></td>';

    var dat=$('input[name=chbox]:checked').map(function() {return this.value;}).get();

    получаю 405,407,412,413,414,415,416

    как теперь сделать цикл
    if(!empty($_POST['checks']))
    {$query = "(" ;
    foreach($type as $val) $query.= "$val,";
    $query = substr($query, 0, strlen($query) - 1 ). ")" ;
    $query = "DELETE FROM tovar WHERE id IN ".$query;
    echo $query;
    // Выполняем запрос
    if(!mysql_query($query))
    {
    echo mysql_error()."<br>";
    echo $query."<br>";
    }
    }
     
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    foreach сделай
     
  23. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    Код (Text):
    1. $arr = array($_POST['checks']);
    2.  
    3. foreach ($arr as $val)
    4. {
    5. $id=$val;
    6. //$sql="DELETE FROM tovar WHERE id=$val";
    7. $res=mysql_query("SELECT * FROM tovar WHERE id=".$val."");
    8. echo $val;
    9. $row = mysql_fetch_array( $res);
    10. $img=$row['img'];
    11. echo $img;
    12. unlink("../tovar/img/".$img."");
    13. mysql_query($sql);
    14. }
    15. unset($val);
    16.  
    17. }
    что не так?

    если один выбран работает а если несколько то нет
     
  24. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    var_dump($_POST['checks']) и прочие приёмчики дебага вам помогут.
     
  25. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    $arr = explode(",", $_POST['checks']);
    так написал