Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rozwijalna lista wyboru
Forum PHP.pl > Forum > Przedszkole
alonzo
Witam serdecznie i proszę o pomoc.
Mam w bazie danych dwie tabele: "dane" i "rzecz".

Struktura tabeli "dane":
daneID
nazwisko
rzeczID

Struktura tabeli "rzecz":
rzeczID
nazwa

Przy edycji konkretnego rekordu z tabeli "dane", do edycji pola "rzeczID" używam rozwijalnej listy wyboru. Nie wiem, jak zrobić, aby pojawiała mi się lista z ustawioną wartością taką jak ma edytowany rekord.

Rozwiązałem to w ten sposób, że najpierw wyświetlam listę z aktualną wartością pola, a obok listę w wyborem nowej wartości pola.
Jak poprawić ten skrypt, abym załatwił to jedną listą.

  1. <?php
  2. echo &#092;"<tr>\";
  3. echo &#092;"<td width=\"130\" align=\"right\"> <SPAN class=txt> Rzecz:</SPAN> </td>\";
  4. echo &#092;"<td width=\"200\">\";
  5. echo &#092;"<select name=\" \".$row[\"rzeczID\"].\" \">\";
  6. $wynik=mysql_query(&#092;"select * from rzecz where rzeczID=\".$row[\"rzeczID\"].\" \");
  7. for ($i=0; $i<@mysql_num_rows($wynik); $i++){
  8. $wiersz=mysql_fetch_array($wynik);
  9. echo &#092;"<option value=\"\".$wiersz[\"rzeczID\"].\"\">\".$wiersz[\"nazwa\"];
  10. }
  11. echo &#092;"</select>\";
  12. echo &#092;"</td>\";
  13.  
  14.  
  15.  
  16. echo &#092;"<td width=\"200\">\";
  17. echo &#092;"<select name=\" new_rzeczID\"> <option value=\"\" selected> --ponownie wybierz rzecz--\";
  18. $wynik=mysql_query(&#092;"select * from rzecz \");
  19. for ($i=0; $i<@mysql_num_rows($wynik); $i++){
  20. $wiersz=mysql_fetch_array($wynik);
  21. echo &#092;"<option value=\"\".$wiersz[\"rzeczID\"].\"\">\".$wiersz[\"nazwa\"];
  22. }
  23. echo &#092;"</select>\";
  24. echo &#092;"</td>\";
  25. echo &#092;"</tr>\";
  26. ?>


---
Prosze uzywac [php] do umieszczania kodu php
hwao
Ive
wykorzystaj skrocona instrukcje warunkowa:
  1. <?
  2. echo $cz['id_kat'] == $cz1['id'] ? &#092;"<option value=\"\".$cz1['id'].\"\" selected />\".$cz1['nazwa'] : \"<option value=\"\".$cz1['id'].\"\" />\".$cz1['nazwa'];
  3. ?>

dopasuj sobie to twoich potrzeb
Mariusz(P)
Spróbuję ci pomóc. Poniżej kod który powinien działać.

  1. <?php require_once('localhost.php'); ?> 
  2. <?php
  3. function GetSQLValueString($theValue, $theType, $theDefinedValue = &#092;"\", $theNotDefinedValue = \"\") 
  4. {
  5. $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
  6.  
  7. switch ($theType) {
  8. case &#092;"text\":
  9. $theValue = ($theValue != &#092;"\") ? \"'\" . $theValue . \"'\" : \"NULL\";
  10. break;
  11. case &#092;"long\":
  12. case &#092;"int\":
  13. $theValue = ($theValue != &#092;"\") ? intval($theValue) : \"NULL\";
  14. break;
  15. case &#092;"double\":
  16. $theValue = ($theValue != &#092;"\") ? \"'\" . doubleval($theValue) . \"'\" : \"NULL\";
  17. break;
  18. case &#092;"date\":
  19. $theValue = ($theValue != &#092;"\") ? \"'\" . $theValue . \"'\" : \"NULL\";
  20. break;
  21. case &#092;"defined\":
  22. $theValue = ($theValue != &#092;"\") ? $theDefinedValue : $theNotDefinedValue;
  23. break;
  24. }
  25. return $theValue;
  26. }
  27.  
  28. $editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
  29. if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
  30. $editFormAction .= &#092;"?\" . $HTTP_SERVER_VARS['QUERY_STRING'];
  31. }
  32.  
  33. if ((isset($HTTP_POST_VARS[&#092;"MM_update\"])) && ($HTTP_POST_VARS[\"MM_update\"] == \"form1\")) {
  34. $updateSQL = sprintf(&#092;"UPDATE dane SET nazwisko=%s, rzeczID=%s WHERE daneID=%s\",
  35.  GetSQLValueString($HTTP_POST_VARS['nazwisko'], &#092;"text\"),
  36.  GetSQLValueString($HTTP_POST_VARS['rzeczID'], &#092;"int\"),
  37.  GetSQLValueString($HTTP_POST_VARS['daneID'], &#092;"int\"));
  38.  
  39. mysql_select_db($database_localhost, $localhost);
  40. $Result1 = mysql_query($updateSQL, $localhost) or die(mysql_error());
  41. }
  42.  
  43. $colname_rzecz = &#092;"1\";
  44. if (isset($HTTP_GET_VARS['rzeczID'])) {
  45. $colname_rzecz = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['rzeczID'] : addslashes($HTTP_GET_VARS['rzeczID']);
  46. }
  47. mysql_select_db($database_localhost, $localhost);
  48. $query_rzecz = sprintf(&#092;"SELECT * FROM rzecz WHERE rzeczID = %s\", $colname_rzecz);
  49. $rzecz = mysql_query($query_rzecz, $localhost) or die(mysql_error());
  50. $row_rzecz = mysql_fetch_assoc($rzecz);
  51. $totalRows_rzecz = mysql_num_rows($rzecz);
  52.  
  53. mysql_select_db($database_localhost, $localhost);
  54. $query_dane = &#092;"SELECT * FROM dane\";
  55. $dane = mysql_query($query_dane, $localhost) or die(mysql_error());
  56. $row_dane = mysql_fetch_assoc($dane);
  57. $totalRows_dane = mysql_num_rows($dane);
  58. ?>

  1. <title>Untitled Document</title>
  2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  3. </head>
  4.  
  5. <form method="post" name="form1" action="<?php echo $editFormAction; ?>">
  6. <table align="center">
  7. <tr valign="baseline">
  8. <td nowrap align="right">Nazwisko:</td>
  9. <td><input type="text" name="nazwisko" value="<?php echo $row_dane['nazwisko']; ?>" size="32"></td>
  10. </tr>
  11. <tr valign="baseline">
  12. <td nowrap align="right">Nazwa Rzeczy:</td>
  13. <td> <select name="rzeczID">
  14. <?php
  15. do {
  16. ?>
  17. <option value="<?php echo $row_rzecz['rzeczID']?>" <?php if (!(strcmp($row_rzecz['rzeczID'], $row_dane['daneID']))) {echo "SELECTED";} ?>><?php echo $row_rzecz['nazwa']?></option>
  18. <?php } while ($row_rzecz = mysql_fetch_assoc($rzecz));
  19. ?>
  20. </select> </td>
  21. <tr>
  22. <tr valign="baseline">
  23. <td nowrap align="right">&nbsp;</td>
  24. <td><input type="submit" value="Update Record"></td>
  25. </tr>
  26. </table>
  27. <input type="hidden" name="daneID" value="<?php echo $row_dane['daneID']; ?>">
  28. <input type="hidden" name="MM_update" value="form1">
  29. <input type="hidden" name="daneID" value="<?php echo $row_dane['daneID']; ?>">
  30. </form>
  31. <p>&nbsp;</p>
  32.  
  33. </body>
  34. </html>

  1. <?php
  2.  
  3. ?>


kod pliku localhost.php
  1. <?php
  2. $hostname_localhost = &#092;"localhost\";
  3. $database_localhost = &#092;"nazwa bazy danych\";
  4. $username_localhost = &#092;"Użytkownik\";
  5. $password_localhost = &#092;"Hasło\";
  6. $localhost = mysql_pconnect($hostname_localhost, $username_localhost, $password_localhost) or die(mysql_error());
  7. ?>


pozdrawiam
alonzo
Miło z Waszej strony, że podjęliście się tematu. Dziękuję. Przetestuję sobie Wasze pomoce.
scanner
Przeniesione: Skrypty php -> php Początkujacy
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.