sql >> Databasteknik >  >> RDS >> Oracle

gör min tabellform dynamisk

Du kan skapa dynamiska åtgärder på fält i tabellform, men du behöver känna till vissa Javascript/jQuery/DOM-grejer eftersom det inte kan göras deklarativt som det kan med sidobjekt.

Som ett exempel skapade jag en enkel tabellform på EMP-tabellen:

Med hjälp av webbläsarens Inspect Element-verktyg kan jag se att HTML-koden för Ename-fältet på rad 3 ser ut så här:

<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">

De relevanta bitarna att notera är namnet "f03" och ID:t "f03_0003". För alla fält i tabellform anger namnet kolumnen och är detsamma för alla fält i den kolumnen. ID:t består av namnet plus en sträng för att representera raden - i det här fallet "_0003" för att representera rad 3.

På samma sätt heter Hiredate-fälten alla "f004" och har ID:n som "f04_0003".

Med denna information kan vi skriva en dynamisk handling. Låt oss till exempel säga att närhelst Ename är tomt så ska Hiredate döljas, annars visas. I pseudokod:

närhelst ett element med namnet "f03" ändras, ska elementet med namnet "f04" på samma rad döljas eller visas.

Så vi kan skapa en synamisk handling med ett When-villkor som detta:

  • Händelse =Ändra
  • Utvalstyp =jQuery-väljare
  • jQuery selector =input[name="f03"]

d.v.s. när en ingång vars namn är "f03" ändras, aktivera denna åtgärd.

Åtgärden som utförs måste vara "Execute Javascript code", och koden kan vara:

// 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();
}

Eftersom Hiredate är en datumväljare behövde jag dölja/visa både själva fältet och dess datumväljarikon. Jag valde att göra detta genom att dölja/visa spann som innehåller dem båda. Denna kod kunde ha skrivits på många olika sätt.

Du kan använda liknande tekniker för att uppnå dina mål, men som du kan se är det inte trivialt lätt.




  1. MySQL-uppdatering CASE NÄR/DÅ/ANNARS

  2. Länkar wordpress-bloggen till CodeIgniter View

  3. Kodningsfel vid skrivning av data från excelfil till databas (mysql)

  4. mysql känns inte igen som ett internt eller externt kommando, operativt program eller batch