Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Po zaznaczeniu checbox chce pobierać plik
amii
post
Post #1





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Bardzo dziwna sprawa. Po pierwsze to funkcja dodaj() jest przekopiowana ze skryptu gdzie wszystko działa OK. Po drugie inne checkboxy działają OK. Problem jest taki, że jak zaznaczam checkboxy dla akcji pinguj (tej z pliku functions.php) to firefox chce mi pobierać plik admin.php a IE wyświetla: Program Internet Explorer nie może wyświetlić witryny sieci Web.

Plik admin.php
  1. echo '<form method="post" id="formularz_checkbox" name="formularz_checkbox" action="'.SITE.'admin.php?action=dodaj&amp;task=usun">';
  2. $przycisk = html_input('submit', 'usun_zaznaczone_name', 'usun_zaznaczone_id', 'Usun
  3.  
  4. zaznaczone', '', 'button', 'onclick="java script: return pop()"', '', '', '', '', '', '', '', '');
  5. $przycisk2 = html_input('submit', 'pinguj_zaznaczone_name', 'pinguj_zaznaczone_id', 'Pinguj
  6.  
  7. zaznaczone', '', 'button', '', '', '', '', '', '', '', '', '');
  8. echo '<p><input type="checkbox" name="zaznacz_all_name" id="zaznacz_all_id"
  9.  
  10. onClick="zaznacz(this, \'formularz_checkbox\')" /> Zaznacz wszystko: ' .$przycisk . $przycisk2. ' </p>';
  11.  
  12. while ($row2 = mysql_fetch_array($zapytanie3)) {
  13. $wartosc_bool = $row2['tick'];
  14.  
  15. if($wartosc_bool) $zdjecie = '<img float="left" display="inline" src="'.SITE.'images/index.png" alt="strona zaindeksowana" height="16" width="16">';
  16. else $zdjecie = '<img float="left" display="inline" src="'.SITE.'images/index_no.png" alt="strona niezaindeksowana" height="16" width="16">';
  17.  
  18. $link = '<a target="_blank" href="http://www.google.pl/#hl=pl&amp;source=hp&amp;q=site:'.$row2['url'].'&amp;aq=f">'.$row2['url'].'</a>';
  19. $podstaw = '<input type="checkbox" name="checkbox_name[]" id="checkbox_id_'.$row2['url'].'"
  20.  
  21. value="'.$row2['url'].'<:(IMG:style_emoticons/default/snitch.gif) '.$row2['id'].'" />';
  22.  
  23. echo '<p>' . $podstaw. '&nbsp;&nbsp;&nbsp; ' .$zdjecie. ' &nbsp;&nbsp;&nbsp;<a target="_blank" href="http://www.google.pl/#hl=pl&amp;source=hp&amp;q=site:'.$row2['url'].'&amp;aq=f">'.$row2['url'].'</a>
  24.  
  25. </p>';
  26. }
  27. echo $renderPager1; //wyswietlenie paginatora
  28. echo '</form>';



Plik functions.php
  1. // Funkcja generująca przyciski formularza
  2. function html_input($type, $name, $id, $value, $label, $css, $script1, $script2, $script3, $checked, $rows, $cols, $method, $action, $legend) {
  3. $lbl = !empty($label) ? '<label for="'.$id.'">'.$label.'</label>' : '';
  4. $ID = !empty($id) ? ' id="'.$id.'"' : '';
  5. $style = !empty($css) ? ' class="'.$css.'"' : '';
  6. $js1 = !empty($script1) ? ' '.$script1 : '';
  7. $js2 = !empty($script2) ? ' '.$script2 : '';
  8. $js3 = !empty($script3) ? ' '.$script3 : '';
  9. $attribs = $ID.$style.$js1.$js2.$js3;
  10. $val = ' value="'.$value.'"';
  11. $input = '<input type="'.$type.'" name="'.$name.'"'.$attribs;
  12. switch($type) {
  13. case 'form': $output = (!empty($method) && $method != 'end') ?
  14. '<form method="'.$method.'" action="'.$action.'"'.$attribs.'>' : '</form>'; break;
  15. case 'fieldset': $output = (!empty($legend) && $legend != 'end') ?
  16. '<fieldset><legend'.$attribs.'>'.$legend.'</legend>' : '</fieldset>'; break;
  17. case 'text':
  18. case 'password': $output = '<p>'.$lbl.':<br />'.$input.$val.' /></p>'; break;
  19. case 'checkbox':
  20. case 'radio': $check = $checked == 'ok' ? ' checked="checked"' : ''; $output = '<p>'.$input.$check.' /> '.$lbl.'</p>'; break;
  21. case 'hidden':
  22. case 'submit':
  23. case 'reset':
  24. case 'button': $output = $input.$val.' />'; break;
  25. case 'textarea':
  26. $output = '<p>'.$lbl.':<br />
  27. <textarea name="'.$name.'" rows="'.$rows.'" cols="'.$cols.'"'.$attribs.'>'.$value.
  28. '</textarea></p>'; break;
  29. }
  30. return $output;
  31. }
  32.  
  33.  
  34. function dodaj() {
  35. if (isset($_GET['task'])) {
  36.  
  37. switch($_GET['task']) {
  38.  
  39. case 'usun':
  40.  
  41. if (isset($_POST['pinguj_zaznaczone1_name'])) {
  42. $title = array('Alkomaty dowodowe', 'Uzdatnianie wody', 'Filtry do wody', 'Alkomaty'); //tytuły do pingowania
  43. $losowy_rekord = mt_rand(0, count($title)-1);
  44. foreach($_POST['checkbox_name1'] as $key => $value) {
  45. $value = explode('<:(IMG:style_emoticons/default/snitch.gif) ', $value);
  46. $extract = trim($value[0]);
  47. ping($title[$losowy_rekord], $extract);
  48.  
  49. }
  50. unset($_POST['pinguj_zaznaczone1_name']);
  51. }
  52.  
  53. if (isset($_POST['pinguj_zaznaczone_name'])) {
  54. $title = array('Alkomaty dowodowe', 'Uzdatnianie wody', 'Filtry do wody', 'Alkomaty'); //tytuły do pingowania
  55. $losowy_rekord = mt_rand(0, count($title)-1);
  56. foreach($_POST['checkbox_name'] as $key => $value) {
  57. $value = explode('<:(IMG:style_emoticons/default/snitch.gif) ', $value);
  58. $extract = trim($value[0]);
  59. ping($title[$losowy_rekord], $extract);
  60.  
  61. }
  62. unset($_POST['pinguj_zaznaczone_name']);
  63. }
  64. }
  65. }
  66. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wNogachSpisz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


  1. html_input($type, $name, $id, $value, $label, $css, $script1, $script2, $script3, $checked, $rows, $cols, $method, $action, $legend)


omfg....

Nie lepiej dać coś w stylu

  1. $settings = array(
  2. 'type' => 'text',
  3. 'id' => 'myId',
  4. ...
  5. );
  6.  
  7. html_input($settings)


--------------------------------------------------------

Czepiania ciąg dalszy:

  1. $lbl = !empty($label) ? '<label for="'.$id.'">'.$label.'</label>' : '';
  2. $ID = !empty($id) ? ' id="'.$id.'"' : '';
  3. $style = !empty($css) ? ' class="'.$css.'"' : '';
  4. $js1 = !empty($script1) ? ' '.$script1 : '';

W ten sposób nie sprawdza się czy argument został przekazany....
Taki kod generuje mase ostrzeżeń,
nawet jeśli masz wyłączone pokazywanie błędów, to mimo wszytko PHP przejdzie procedurę jego obsługi, to pochłania mase zasobów..

Używaj isset();

--------------------------------------------------------

Pokaż jak wygląda funkcja ping()

Ten post edytował wNogachSpisz 25.02.2011, 15:05:44
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 17:28