Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php +mysql) не могу удалить строки, которые выделены с помощью выделить все / 7 сообщений из 7, страница 1 из 1
02.07.2012, 10:54:17
    #37862522
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<!--Отмечаем все чекбоксы-->
<script type="text/javascript">
 
  function checkAll(obj) {
 
    'use strict';
      // Получаем NodeList дочерних элементов input формы:
      var input_items = obj.form.getElementsByTagName("input"),
          item;            
      // Здесь, увы цикл по элементам формы:
      for (item in input_items) {
          // Проверка, является ли данный элемент непосредственным свойством
          // объекта input_items ( Это рекомендуется сделать )
          if (input_items.hasOwnProperty(item)) {
              // Дальше логика простая: если checkbox "Выбрать всё" - отмечен
              // - отмечаем все чекбоксы...
              if (input_items[item].type=== "checkbox") {
                  if (!obj.checked) {
                      
					   input_items[item].checked = false;
					  document.check.delete.disabled=true;// если выделены чекбокс для всех чекбоксов, то кнопка delete disabled=false
					 
                  // Иначе снимаем отметки со всех чекбоксов:
                  } else {
                      input_items[item].checked = true;
					 document.check.delete.disabled=false;//если выделены чекбокс для всех чекбоксов, то кнопка delete disabled=true
                  }
              }        
          }
      }//end for
  }
</script>


Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
<!--Делаем активной submin delete только если выбран чекбокс-->
<script type='text/javascript'>

function apply(obj)
{

var one_enabled = false;	
c = document.getElementsByTagName('input');
  for (var i = 1; i < c.length; i++)
  {
    if (c[i].type == 'checkbox')
    {
      if (c[i].checked)
	  {
		  one_enabled = true;
	  }
    }
  }	
	
	
  if(!one_enabled)
  {
   
	document.check.delete.disabled=true;
	  
  }
  else 
  {
	
    document.check.delete.disabled=false;
  }

 
 
}


</script>


Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<form name="check" action="index.php" method="post">
<table>

<i>{$tbl_photos}</i>
<tr>
<td><input type="checkbox" name="checkbox[]" id="checkbox[]" onclick="checkAll(this)" /> 
      </td>
<td><b>Id</b></td>
<td><b>Name</b></td>
<td><b>Size</b></td>
<td><b>Comments</b></td>
<td><b>Album Id</b></td>
<td><b>User</b></td>
<td><b>Photo</b></td>
<td><b>Date Time</b></td>
</tr>

{foreach from=$photos item=n }
<tr>
	<td> <input name="checkbox[]" type="checkbox" id="checkbox[]" value="{$n.photos_id}" onClick="apply()"></td>
	<td> {$n.photos_id}  </td>  
    <td> {$n.photos_name}  </td>  
	<td> {$n.photos_size}</td> 
	<td> {$n.photos_comment}</td>
	<td> {$n.album_id} </td>
	<td> {$n.user_id} </td>	
	<td>
	<img src="{$n.photo}" alt="" width="50" height="50"><br>
	</td>
	<td> {$n.post_date} </td>
</tr>



{/foreach}

</table>

<input name="delete" type="submit" id="delete" value="Delete">

</form>
<a href='upload.php'>New note</a><br/>




index.php


ОБРАБОТЧИК HTML
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
/*------------------------Запрос на вывод элементов массива таблицы $table_ph, она же 'photos'--------*/
// 
//$result_photos = mysql_query("SELECT * FROM $table_ph") or trigger_error(mysql_error()); 
$query_photos = "SELECT * FROM $table_ph"; 
$result_photos = mysql_query($query_photos, $link) or die (mysql_error());

while ($row_photos = mysql_fetch_assoc($result_photos))
    $photos_arr[] = $row_photos;
 
$smarty ->assign('photos', $photos_arr); /* для того, чтобы потом использовать переменную в tpl, её 
                                          нужно ОБЯЗАТЕЛЬНО assign и в tpl,в данном случае используем
										  переменную {$photos}. В данном случае эта переменная для 
										  вывода данных из таблицы $table_ph */
										 
$smarty->assign('tbl_photos', $table_ph); /* в tpl используем переменную {$photos}*/ 
$smarty->display('photos.tpl');// подключаем наш "html", в котором выводятся элементы массива




// Check if delete button active, start this
if (!($_POST['checkbox']))
{
}
else
{
if (($_SERVER['REQUEST_METHOD'] == 'POST') AND $_POST['checkbox'])
{
	$delete = $_POST['delete'];
	if($delete){

$del_arr_str = implode($_POST['checkbox'], ',');


/*$sql_sel_photo="SELECT `photo` FROM $table_ph WHERE `photos_id` IN ($del_arr_str)" ;
$result_sel=mysql_query(sql_sel_photo);*/

/*$sql_sel_photo = "SELECT `photo` FROM $table_ph WHERE `photos_id` = $del_arr_str)";
$res_sel_photo = mysql_query($sql_sel_photo);*/



$sql_delete_photos = "DELETE FROM $table_ph WHERE photos_id IN ($del_arr_str)";
$result = mysql_query($sql_delete_photos);



if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=index.php\">";
//print ($res_sel_photo);
//var_dump ($result_sel);
}
else die (mysql_error());
}
}
}





Так вот, по отдельному выделенные чекбоксы удаляет, а когда я одним чекбоксом выделяю все, то не происходит удаления и появляется такая ошибка
Код: php
1.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on,62)' at line 1




Подскажите, как быть, пожалуйста
...
Рейтинг: 0 / 0
02.07.2012, 10:58:15
    #37862528
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
Маф,

Запрос с ошибкой покажите для начала.
...
Рейтинг: 0 / 0
02.07.2012, 10:59:23
    #37862532
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
и
Код: php
1.
var_dump($_POST['checkbox']);
...
Рейтинг: 0 / 0
02.07.2012, 11:02:13
    #37862540
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
Код: php
1.
array(2) { [0] => string(2) "on" [1] => string(2) "62" }  




Код: php
1.
2.
$sql_delete_photos = "DELETE FROM $table_ph WHERE photos_id IN ($del_arr_str)";
$result = mysql_query($sql_delete_photos);
...
Рейтинг: 0 / 0
02.07.2012, 11:05:45
    #37862549
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
Не вдавался в подробности но:
Код: php
1.
2.
<td><input type="checkbox" name="checkbox[]" id="checkbox[]" onclick="checkAll(this)" /> 
<td> <input name="checkbox[]" type="checkbox" id="checkbox[]" value="{$n.photos_id}" onClick="apply()"></td>


имеют одинаковые имена => если выделин checkAll то он тоже придет на сервер и его значение будет "on" (так как валюе не указан). Вот вам в SQL и попадает запрос в виде: DELETE FROM $table_ph WHERE photos_id IN (1,2,3,4,on,5,6) что приводит к ошибке
...
Рейтинг: 0 / 0
02.07.2012, 11:07:27
    #37862553
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
спасибо большое)
...
Рейтинг: 0 / 0
02.07.2012, 11:09:55
    #37862561
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
спасибо, поменял name чекбокса и все заработало)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php +mysql) не могу удалить строки, которые выделены с помощью выделить все / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]