ugrás a tartalomhoz

Felhasználói felület nyomtatók adatainak módosításához

Anonymous · 2005. Dec. 13. (K), 17.19
Tisztelt Kollégák!

Kezdő PHP-s révén ismét a segítségetekre szorulok.

Egy oldalon egy nyomtatót választok ki a következőképpen egy táblázatból (MySQL-ből):
<?php
print "Válasszon nyomtatót: ";
print "<select name=modositas[]>";
while ($egy_sor=mysql_fetch_row($eredmeny))
  {
  print "<option>$egy_sor[1]";
  }
print "</select>";
Az említett formnál az action="valami.php" method="POST", mivel a valami.php-ban szeretném a kiválasztott nyomtató rekordjának minden mezőjét megmutatni egy text-ben, hogy a felhasználó módosíthassa. Tehát az $egy_sor[0]-t, és az $egy_sor[2]-t is. Hogyan oldjam meg ezt a valami.php-ben? Illetve javasoltok valami más megoldást?

Kérlek segítsetek.

Előre is köszönöm: Sz. Péter (egyébként az eddigi tanácsaitok nagyon jól jöttek, hálás vagyok)
 
1

HTML, bbcode, stb.

janoszen · 2005. Dec. 13. (K), 20.16
Üdv!

1. érdemes lenne szép lassan áttérni XHTML alapú notációra.

2. érdemes lenne bbcode jelölőket használni ha kódot küldesz.

3. valami jó nyakatekerten mondta el, hogy mit akarsz, de ha jól hámoztam ki, akkor azt akarod, hogy a felhasználó kiválaszt egy nyomtatót és utána annak valamilyen adatát módosíthatja.

<?php
 echo("HTML fejléc, elemek, stb.");

 if (@isset($_POST['adat']))
 {
  echo("<h1>Adat módosítás eredménye</h1>");

  $q = array();
  foreach($POST['adat'] as $id => $value)
  {
   $q[] = mysql_escape_string($id) . "=\"" . mysql_escape_string($value) . "\"";
  }
  mysql_query("UPDATE nyomtatok SET " . implode(", ", $q) . " WHERE id=\"" . mysql_escape_string($POST['id']) . "\"");
  if (mysql_error())
  {
   echo("<p>Hiba!</p>");
  } else {
   echo("<p>OK</p>");
  }
 }

 echo("<form action=...>");

 $r = mysql_query("SELECT * FROM nyomtatok WHERE id=" . $_POST['nyomtato']);
 $a = mysql_fetch_array($r);
 foreach ($a as $key => value)
 {
  if ($key == "id")
  {
   echo("<input type=\"hidden\" name=\"id\" value=\"" . $value . "\" />");
  } else {
   echo("<label for=\"" . $key . "\">" . $key . "</label> <input type=\"text\" name=\"adat[" . $key . "]\" value=\"" . $value . "\" />");
  }
 }

 echo("<input type=\"submit\" value=\"Mentés\" />");
 echo("</form>");

 echo("HTML lábléc, stb.");
?>
Remélem, mindent jól írtam. :D
2

Kérdezz jól

Jano · 2005. Dec. 13. (K), 21.18
OFF:
Javasolom, hogy úgy tegyed fel a kérdést legközelebb, hogy mi az amit meg akarsz oldani és ne úgy, hogy te valami fabrikáltál és abból hozzunk ki valamit. Nekem az egy_sor[0] és egy_sor[2] nem bír jelentés tartalommal. Proclub talán jóirányba indult el, talán nem.

Ha már leírtad, hogy mi a cél utána tedd hozzá, hogy te igy próbáltad és eddig jutottál. Ekkor a segítő emberke megtudja itálni, hogy kb milyen tudásod van a témában, a megoldást tudja a már meglévő kódhoz javasolni.

Ha csak a saját utadat írod le, akkor meggátolod azt, hogy tényleg valami jobb alternatív megoldást mondjanak ra a valaszolok.
/OFF

Egy lépésben ha Javascriptet is hasznalhatsz.

Nem kell 2 lapra tenni a nyomtató kiválasztást és a tulajdonságok beállítását ha kevés nyomtatoból választhat. A nyomtato valaszto select elem ala, egy fieldset tipusu HTML elembe bele teheted a nyomtato tulajdonsagait allito urlap elemeket is.

Ezeket a kivalsztot nyomtato adataival kitolthetsz. Ehhez az oldal generalasakor pl egy javascriptes tombben el kell kuldeni a nyomtatok adatait is.

Hogy felhasznalo ne felejtsen el menteni, ezert egy apro funkciot be kell epiteni. Ha a nyomtato tulajdonsagaiba mar megvaltoztatott valamit, akkor ha ujra nyomtatot valasztana, akkor fel kell dobni egy megerositest kero figyelmeztetest, hogy biztos-se benne.

Masik lehetoseg, hogy elore minden nyomtatonak megfelelo urlap mezo halmazt legeneralsz de alapbol elrejted oket. Majd ha kivalasztott egyet a selectbol akkor azt megmutatod. Itt nem kell vacakolni a mentegetessel, figyelmeztetgetessel, mert minden nyomtatonak sajat urlap mezoi vannak.
3

Köszönöm

Anonymous · 2005. Dec. 14. (Sze), 11.50
Köszönöm a hozzászólásokat, sikerült megoldani a problémát.
Igyekszem a jövőben az elhangzott javaslatok szerint eljárni.

Köszönettel: Sz. Péter