Autor Zpráva
piwik
Profil
Dobry den,

Jedna sa o webovu aplikaciu realitna kancelaria, ktoru vyvijam.

Mam problem s odovzdanim premennej $data[id] do modal okna jqmWindow. Jedna sa o kliknutie na link zmenit...vo vypise. Po kliknuti na odkaz v prislusnom vypise zaznamu, chcem aby v modal okne sa vypisal obsah toho isteho zaznamu....nedari sa mi to docielit. V modal okne sa nachadza formular pre zmenu zaznamu.

Problem je, ze premenna sa odovzda s poslednom hodnotou $data[id] z cyklu white. ... ale ja potrebujem stale aktualnu hodnotu. Dufam, ze sme sa pochopili.

Za odpovede dakujem, nizsie je uvedeny kod:

<?php if($_POST['vyber']=="byty" && isset($_POST['vyber1']))
      {  
        $sql = mysql_query("SELECT * FROM byty WHERE lokalita='".$vyber1."'");
        $pocet = mysql_num_rows($sql);
?>
        <table border=0 class=vypis-info>
        <tr>
        <td><strong>Nehnuteľnosť:</strong></td>
        <td><?php echo $vyber ?></td>
        <td><strong>Lokalita:</strong></td>
        <td><?php echo $vyber1 ?></td>
        <td><strong>Počet záznamov:</strong></td>
        <td><?php echo $pocet ?></td>
        </tr>
        </table>
    
      <?php while($data = mysql_fetch_array($sql)) { ?>
            <table border=0 id=byty_vypis>
            <tr>
            <td>
            <strong>ID:</strong><?php echo $data[id] ?>
            </td>
            <td valign=top rowspan=11 class=vypis-obr-velkost>
            <div id=vypis-pic></div>
            <span class=vypis_operacia><br />
            <strong><a href="#?id=<?php echo $data[id] ?>" class="jqModal">zmeniť</a></strong>
            <strong><a href="#?id=<?php echo $data[id] ?>" class="jqModal">ostrániť</a></strong>
            </span>
            </td>
            </tr>
            <tr>
            <td>
            <strong>Ulica:</strong><?php echo $data[ulica] ?>
            </td>
            </tr>
            <tr>
            <td>
            <strong>Číslo:</strong><?php echo $data[cislo] ?>
            </td>
            </tr>
            <tr>
            <td>
            <strong>Poschodie:</strong><?php echo $data[poschodie] ?>
            </td>
            </tr>
            <tr>
            <td>
            <strong>Typ:</strong><?php echo $data[typ] ?>
            </td>
            </tr>
            <tr>
            <td>
            <strong>Plocha:</strong><?php echo $data[plocha] ?>
            </td>
            </tr>
            <tr>
            <td>
            <strong>Vlastníctvo:</strong><?php echo $data[vlastnictvo] ?>
            </td>
            </tr>
            <tr>
            <td>
            <strong>Stav:</strong><?php echo $data[stav] ?>
            </td>
            </tr>
            <tr>
            <td>
            <strong>Cena:</strong><?php echo $data[cena] ?>
            </td>
            </tr>
            <tr>
            <td>
            <strong>Opis:</strong><?php echo $data[opis] ?>
            </td>
            </tr>
            </table>
       <?php   $podla_id=$data[id];   }
        }   ?>
        

<div class="jqmWindow" id="dialog">

<a href="#" class="jqmClose">Close</a>

<hr>
<?php 
      echo $podla_id ?>
<hr>

	<form action="template.php?page=zmena&ulica=<?=$ulica=$_POST['ulica']; ?>
                                       &cislo=<?=$cislo=$_POST['cislo']; ?> 
                                       &poschodie=<?=$poschodie=$_POST['poschodie']; ?>
                                       &typ=<?=$typ=$_POST['typ']; ?>
                                       &plocha=<?=$plocha=$_POST['plocha']; ?>
                                       &vlastnictvo=<?=$vlastnictvo=$_POST['vlastnictvo']; ?>
                                       &stav=<?=$stav=$_POST['stav']; ?>
                                       &cena<?=$cena=$_POST['cena']; ?>
                                       &opis=<?=$opis=$_POST['opis']; ?>" method="post">
 <?php $sql1 = mysql_query("SELECT * FROM byty WHERE id='".$podla_id."' ");
        if(!sql1) { echo "Chyba v tabulke",mysql_error(); break; }
        $pocet1 = mysql_num_rows($sql1);
        if($pocet1==0) { echo "Nenasiel sa ziaden zaznam"; break; }
        /* hodnoty zaznamov */
        $ulica = mysql_result($sql1,0,"Ulica");
        $cislo = mysql_result($sql1,0,"Cislo");
        $poschodie = mysql_result($sql1,0,"Poschodie");
        $typ = mysql_result($sql1,0,"Typ");
        $plocha = mysql_result($sql1,0,"Plocha");
        $vlastnictvo = mysql_result($sql1,0,"Vlastnictvo");
        $stav = mysql_result($sql1,0,"Stav");
        $cena = mysql_result($sql1,0,"Cena");
        $opis = mysql_result($sql1,0,"Opis");
 ?>  
  <table>  
		<tr>
      <td>Ulica</td>
		  <td><input type="text" name="ulica" id="ulica" value="<?php echo $ulica ?>" class="text ui-widget-content ui-corner-all" /></td>
		</tr>
		<tr>
      <td>Číslo</td>
      <td><input type="text" name="cislo" id="cislo" value="<?php echo $cislo ?>" class="text ui-widget-content ui-corner-all" /></td>
    </tr>
    <tr>
      <td>Poschodie</td>
		  <td><input type="text" name="poschodie" id="poschodie" value="<?php echo $poschodie ?>" class="text ui-widget-content ui-corner-all" /></td>
		</tr>
	  <tr>
      <td>Typ</td>
      <td><input type="text" name="typ" id="typ" value="<?php echo $typ ?>" class="text ui-widget-content ui-corner-all" /></td>
    </tr>
    <tr>
	    <td>Plocha</td>
	    <td><input type="text" name="plocha" id="plocha" value="<?php echo $plocha ?>" class="text ui-widget-content ui-corner-all" /></td>
	  </tr>
	  <tr>
	    <td>Vlastníctvo</td>
	    <td><input type="text" name="vlastnictvo" id="vlastnictvo" value="<?php echo $vlastnictvo ?>" class="text ui-widget-content ui-corner-all" /></td>
	  </tr>
	  <tr>
       <td>Stav</td>
       <td><input type="text" name="stav" id="stav" value="<?php echo $stav ?>" class="text ui-widget-content ui-corner-all" /></td>
    </tr>
    <tr>
      <td>Cena</td>
		  <td><input type="text" name="cena" id="cena" value="<?php echo $cena ?>" class="text ui-widget-content ui-corner-all" /></td>
		</tr>
    <tr>
      <td>Opis</td>
		  <td><input type="text" name="opis" id="opis" value="<?php echo $opis ?>" class="text ui-widget-content ui-corner-all" /></td>
		</tr>
	</table>
		<button type="submit">Zmeniť</button>
	</form>
</div>
Tori
Profil
piwik:
To je všechno jeden soubor, anebo od ř.83 začíná skript, který voláte ajaxem a který dodá data pro nemovitost, na kterou se kliknulo? Možná blbý dotaz, jen mi není úplně jasné, jak to má fungovat. Pokud je to jeden soubor, tak se proměnná $podla_id při každé iteraci přepisuje hodnotou z dalšího řádku db a zůstane jí teda ID z toho posledního. Pak se podle toho načtou data do formuláře, a to celé se teprv pošle do prohlížeče.

Můžete kdyžtak přidat i kousek Javascriptu, který používáte na aktualizaci modal window?
piwik
Profil
Tori:


Dakujem za odpoved. Presne tak, ono sa to prepisuje vzdy poslednym riadkom.

Je to jeden subor, v ktorom sa este nachadza js: (v nom sa iba vola dialog box)

<script>
   $().ready(function() {
  $('#dialog').jqm();
});
</script>


Posielam dalej obsah suboru zmena.php:

<?php	

$id=$_POST['id'];
$ulica=$_POST['ulica'];
$cislo=$_POST['cislo'];
$poschodie=$_POST['poschodie'];
$typ=$_POST['typ'];
$plocha=$_POST['plocha'];
$vlastnictvo=$_POST['vlastnictvo'];
$stav=$_POST['stav'];
$cena=$_POST['cena'];
$opis=$_POST['opis'];

    $sql=mysql_query("UPDATE byty SET
                               ulica='$ulica',
                               cislo='$cislo',
                               poschodie='$poschodie',
                               typ='$typ',
                               plocha='$plocha',
                               vlastnictvo='$vlastnictvo',
                               stav='$stav',
                               cena='$cena',
                               opis='$opis'
                       WHERE id='".$id."');           
      echo "Zaznam bol uspesne zmeneny";
?>
piwik
Profil
mozno este pre informaciu .. na pracu s modal oknom pouzivam tento plugin:

http://dev.iceburg.net/jquery/jqModal/
Tori
Profil
piwik:
A co kdyby se - jen nápad - přesunul i ten formulář z #dialog do zmena.php? Že by byl na stránce jen výpis bytů v dané lokalitě, a formulář na editaci / přidání bytu i jeho zpracování by se přesunuly do modálního okna.

V javascriptu pak přidat parametr z toho odkazu, na který se kliklo
$().ready(function() {
  $('#dialog').jqm( {ajax: '@href'} );
});
a formulář by se taky odeslal ajaxem.

zmena.php by pak mohla vypadat takhle:
<?php 
if (!empty($_REQUEST['ulica']) {  // nějaké pole z formuláře, které musí být vždy vyplněno
  // formulář byl odeslán, takže provedeme update databáze ...
  echo "Údaje boli úspešne zmenené.";
  die();
}

if (empty($_REQUEST['ulica'] || $chyba_ve_formulari == true) {
 // 1. jsme tu poprvé: zobraz formulář s daty z db, anebo
 // 2. byl špatně vyplněný formulář, zobraz ho znovu pro opravu
 $podla_id = $_REQUEST['id']; // sem by měla přijít ta proměnná z odkazu, na který se kliknulo
 
 // ... formulář ....
}


Ale jak říkám, je to jen nápad, nezkoušela jsem to.
Tori
Profil
piwik:
Ještě mne zaujalo: jak funguje ten break uvnitř if?
if(!$sql1) { echo "Chyba v tabulke",mysql_error(); break; }  // ř.100
piwik
Profil
Tori:
piwik:
Ještě mne zaujalo: jak funguje ten break uvnitř if?
>
1
>
if(!$sql1) { echo "Chyba v tabulke",mysql_error(); break; } // ř.100



tuto cast kodu som skopcil z netu, cize netusim :)
Tori
Profil
piwik:
Ad [#7]: Aha, já myslela, jestli to celé není ještě v nějakém cyklu, třeba při zpracování šablony nebo co. Jinak break uvnitř if vyhazuje Fatal error, takže spíš bych použila exit (anebo return, jestli to je includovaný soubor).
piwik
Profil
Tori:


Som v PHP zaciatocnik, tak neviem ci to programujem spravne...pomaham si aj internetom...aspon to pojde rychlejsie.

Takto, ak mas cas, tak Ti mozem poslat zdrojaky ... a mozme to prekonzultovat cez ICQ, pripadne mailom....rada odbornika by sa mi zisla.

No ak, nemas cas,tak nevadi .... inak dakujem za navrhnute riesenie, skusim ho
Tori
Profil
piwik:
zkusím, jestli ten můj návrh vůbec funguje a ozvu se mailem.. ale odborník určitě nejsem, nestudovala jsem IT

/edit: funkční ukázka zde
piwik
Profil
Tori:

vdaka..... ivan.suster@gmail.com

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0