За последние 24 часа нас посетили 18896 программистов и 1626 роботов. Сейчас ищут 934 программиста ...

передача параметра по ссылке

Тема в разделе "PHP и базы данных", создана пользователем soundstorm, 9 окт 2013.

  1. soundstorm

    soundstorm Новичок

    С нами с:
    20 сен 2013
    Сообщения:
    6
    Симпатии:
    0
    Доброго времени суток!
    Делаю всплывающее окно для редактирования элементов таблицы в базе. При нажатии на ссылку в строке, выскакивает форма, с уже заполненными елементами, которые можно редактировать. Все работает, но не могу передать параметр id выбранной строки, по-этому мне выдает первую строку базы. Вот ссылка:
    Код (Text):
    1. href=\" \" onclick=\"openbox2('hide-layout2','popup2');return false;\">Редактировать</a>
    мне нужно что-то типа
    Код (Text):
    1. href=\"delete.php?id_user=".$row["id_user"]."
    , только чтобы ссылка была сама на себя.
     
  2. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    а что создает таблицу ? и как
    ведь если она создается php то можно ведь сделать так как вы написали, да и не мешало какойнить пример посмотреть
     
  3. soundstorm

    soundstorm Новичок

    С нами с:
    20 сен 2013
    Сообщения:
    6
    Симпатии:
    0
    так, как я написал - не получается, так как все выводится без перезагрузки страницы.
    В каждой строке таблицы есть ссылка(показано выше), при нажатии на которую вызывается ф-я:
    Код (Text):
    1. <link rel="stylesheet" type="text/css" href="popup.css">          
    2.   <script type="text/javascript">
    3.   function openbox2(id,popup2) {
    4.    var div2 = document.getElementById(id),
    5.    popupdiv = document.getElementById(popup2);
    6.     if(div2.style.display == 'block') {
    7.         div2.style.display = 'none';
    8.         popupdiv.style.display = 'none';
    9.     }
    10.     else {
    11.          div2.style.display = 'block';
    12.         popupdiv.style.display = 'inline';
    13.       }
    14.     }
    15. </script>        
    16.        <div id="hide-layout2" class="my-hide-layout" style="display:none;" ></div>
    17.            <div id="popup2" class="my-popup" align="center" style="display:none;">
    18.                <h2 class="popup-title">
    19.                     <button id="btn3" class="btn3" onclick="openbox2('hide-layout2','popup2')">x</button>
    20.                <p> Редагування працівника </p></h2>
    21.       // тут форма вывода с заполненными полями
    22. mysql_close();
    23. ?>
    24. </div>
    Добавлено спустя 7 минут 12 секунд:
    Вот форма вывода.
    Код (Text):
    1. <?php
    2. $hostname = "localhost";
    3. $username = "root";
    4. $password = "secret_len";
    5. $dbName = "phone_directory";
    6. $table = "users";
    7.  $id = $_GET['id_user'];
    8.  
    9. mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
    10. mysql_select_db($dbName) or die (mysql_error());
    11.  
    12. if( isset($_GET['id_user']) && !empty($_GET['id_user']))
    13.    {
    14.      $query = "UPDATE $table SET surname='".$_POST['surname']."', name='".$_POST['name']."', department1='".$_POST['department1']."',
    15.                department2='".$_POST['department2']."', position='".$_POST['position']."', phone1='".$_POST['phone1']."',
    16.                phone2='".$_POST['phone2']."', phone3='".$_POST['phone3']."', phone4='".$_POST['phone4']."',
    17.                email='".$_POST['email']."' WHERE id_user=$id";
    18.      mysql_query($query) or die (mysql_error());
    19.              }
    20.  
    21.     $query = "SELECT * FROM $table order by surname";
    22.     $result = mysql_query($query) or die(mysql_error());
    23.     $row = mysql_num_rows($result);
    24.     $row = mysql_fetch_array($result);
    25.     echo "<form action=\"popup_update.php\" method=\"post\" name=\"edit_form\">\n
    26.           <input type=\"hidden\" name=\"update\" value=\"".$row["id_user"]."\" />\n
    27.           <table cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">\n  
    28.              id=$id
    29.           <tr>\n
    30.          <td height=\"40\" colspan=\"20\" ><b><i><div id=\"num\">
    31.          <h2> ".$row["surname"]."</div></h2><h2>".$row['name']."</b></i></td>\n </h2>
    32.          </tr><tr>\n
    33.          <td>Прізвище: &nbsp;</td><td><input type=\"text\" value=\"".$row['surname']."\" name=\"surname\" /></td>\n
    34.          </tr><tr>\n
    35.      // и так далее
    36.    echo "<td colspan=\"2\" align=\"center\"><input type=\"submit\" name=\"submit_edit\" class=\"buttons\" value=\"Зберегти\" /></td>\n";
    37.     echo "</tr></table></form>\n\n";  
    Это редактируемые поля, в которые уже заранее занесены элементы выбранной строки. Но так, как id у меня передать не получается, то оно отображает только первую строку.
     
  4. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    почему? ты когда формируешь эти самые строки, не можешь подсавить туда нужный id???
     
  5. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    ты же суеш туда ид пользователя - вот же строчка
    Код (Text):
    1. <input type=\"hidden\" name=\"update\" value=\"".$row["id_user"]."\" />\n
    чет я не пойму никак что тогда еше надо .. видимо я тупой
     
  6. soundstorm

    soundstorm Новичок

    С нами с:
    20 сен 2013
    Сообщения:
    6
    Симпатии:
    0
    Мне надо, чтобы id отображалось в этой строчке:
    Код (Text):
    1. $query = "SELECT * FROM $table WHERE id_user='$id'";
    если жестко прописывать id_user='14', то идет нормально.
    Как мне нажатием на эту ссылку
    Код (Text):
    1. <a href=\" \"  onclick=\"openbox2('hide-layout2','popup2');return false;\" >Редактировать</a>
    передать параметр id той строки, возле которой была нажата эта ссылка (ссылки отображаются напротив каждой строчки, в таблице)
     
  7. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    тьфу ты ну ты
    Код (Text):
    1. $query = "SELECT * FROM $table WHERE id_user=". $_POST['update'];
     
  8. soundstorm

    soundstorm Новичок

    С нами с:
    20 сен 2013
    Сообщения:
    6
    Симпатии:
    0
    Пошло, ура! Большое спасибо. Только чуть правочка:
    Код (Text):
    1. $id = $_GET['id_user'];
    2. $query = "SELECT * FROM $table WHERE id_user=".$id.";";
    а вывод сам на себя, оч просто)
    Код (Text):
    1. <a href=\"popup_update.php?id_user=".$row["id_user"]." \" onclick=\"openbox2('hide-layout2','popup2');return false;\" >Редактировать</a>
    Всем спасибо!!
     
  9. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Код (PHP):
    1. $query = "SELECT * FROM $table WHERE id_user=".$id.";"; 
    не нужна точка с запятой в запросе
    и у тебя дырка в безопасности. в $_GET['id_user'] может быть не только то что ты хочешь, но и другой запрос, бережно засунутый туда хакером.
     
  10. soundstorm

    soundstorm Новичок

    С нами с:
    20 сен 2013
    Сообщения:
    6
    Симпатии:
    0
    Спасибо, учту