sql >> Databáze >  >> RDS >> Oracle

dělat mou tabulkovou formu dynamickou

Můžete vytvářet dynamické akce v tabulkových polích formuláře, ale musíte znát některé věci Javascript / jQuery / DOM, protože to nelze provést deklarativně jako u položek stránky.

Jako příklad jsem vytvořil jednoduchý tabulkový formulář na EMP tabulce:

Pomocí nástroje Inspect Element v prohlížeči vidím, že kód HTML pro pole Ename na řádku 3 vypadá takto:

<input type="text" name="f03" size="12" maxlength="2000" value="Ben Dev"
    class="u-TF-item u-TF-item--text " id="f03_0003" autocomplete="off">

Relevantní bity, které je třeba poznamenat, jsou jméno "f03" a ID "f03_0003". U všech polí tabulkového formuláře název označuje sloupec a je stejný pro všechna pole v tomto sloupci. ID se skládá z názvu a řetězce, který představuje řádek – v tomto případě „_0003“ představuje řádek 3.

Podobně jsou všechna pole Hiredate pojmenována „f004“ a mají ID jako „f04_0003“.

Vyzbrojeni těmito informacemi můžeme napsat dynamickou akci. Řekněme například, že vždy, když je Ename prázdné, pak Hiredate by měl být skrytý, jinak zobrazen. V pseudokódu:

při každé změně prvku s názvem "f03" by měl být prvek s názvem "f04" na stejném řádku skrytý nebo zobrazen.

Můžeme tedy vytvořit synamickou akci s podmínkou When takto:

  • Událost =změna
  • Typ výběru =selektor jQuery
  • selektor jQuery =input[name="f03"]

tj. kdykoli se změní vstup, jehož název je „f03“, spusťte tuto akci.

Provedená akce bude muset být "Spustit kód Javascript" a kód může být:

// Get the ID of this item e.g. f03_0004
var this_id = $(this.triggeringElement).attr('id');
// Derive the ID of the corresponding Hiredate item e.g. f04_0004
var that_id = 'f04'+this_id.substr(3);

if ($(this.triggeringElement).val() == "") {
    // Ename is empty so hide Hiredate
    $('#'+that_id).closest('span').hide();
} else {
    // Ename is not empty so show Hiredate
    $('#'+that_id).closest('span').show();
}

Protože Hiredate je nástroj pro výběr data, potřeboval jsem skrýt/zobrazit jak samotné pole, tak jeho ikonu pro výběr data. Rozhodl jsem se to udělat tak, že jsem skryl/zobrazil rozsah, který je obsahuje oba. Tento kód mohl být napsán mnoha různými způsoby.

K dosažení svých cílů můžete použít podobné techniky, ale jak vidíte, není to triviálně snadné.




  1. MySQL min/max pro typ DOUBLE

  2. PHP a mod_dbd

  3. Návrh databáze pro vývoj webových aplikací „Kvíz“ pomocí PHP a MySQL

  4. Nahraďte více znaků v SQL