Differenze tra le versioni di "Creare un ComboBox in una tabella e passare i suoi valori selezionati al codice Gambas"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
 
Il caso in questione è quello in cui si intende inserire un ''ComboBox'' all'interno di una cella di una tabella, entrambi ovviamente generati con il codice HTML. Inoltre, si intende passare il valore di un elemento selezionato del ''ComboBox'' al codice Gambas.
 
Il caso in questione è quello in cui si intende inserire un ''ComboBox'' all'interno di una cella di una tabella, entrambi ovviamente generati con il codice HTML. Inoltre, si intende passare il valore di un elemento selezionato del ''ComboBox'' al codice Gambas.
  
Si farà uso dell'oggetto ''WebView'', di cui si potrà disporre attivando anche il componente ''gb.qt4.webkit''.
+
Si farà uso dell'oggetto ''WebView'', di cui si potrà disporre attivando anche il componente ''gb.qt5.webkit''.
  
 
Riguardo al secondo obiettivo posto, poiché né protocollo HTML, né quello ''JavaScript'' consentono di salvare un contenuto in un file si procederà con uno stratagemma a scrivere il valore selezionato del ''ComboBox'' nell'oggetto ''WebView'', cosicché potrà essere recuperato leggendo il contenuto della sua proprietà ''.Text''. Questa operazione, però, comporterà la scomparsa sia della tabella che del ''ComboBox'' precedentemente creati. Si dovrà dunque fare sì che sia la tabella che il ''ComboBox'' vengano nuovamente generati.
 
Riguardo al secondo obiettivo posto, poiché né protocollo HTML, né quello ''JavaScript'' consentono di salvare un contenuto in un file si procederà con uno stratagemma a scrivere il valore selezionato del ''ComboBox'' nell'oggetto ''WebView'', cosicché potrà essere recuperato leggendo il contenuto della sua proprietà ''.Text''. Questa operazione, però, comporterà la scomparsa sia della tabella che del ''ComboBox'' precedentemente creati. Si dovrà dunque fare sì che sia la tabella che il ''ComboBox'' vengano nuovamente generati.
  
 
+
In un file html a parte verrà posto il seguente codice "HTML/Javascript": <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
In un file html a parte verrà posto il seguente codice HTML/JavaScript:   |[[#Note|1]]|
 
 
  &lt;html>
 
  &lt;html>
 
   
 
   
Riga 20: Riga 19:
 
   
 
   
 
   }
 
   }
+
  &lt;/script>
&lt;/script>
 
 
   
 
   
 
  &lt;/head>
 
  &lt;/head>
Riga 28: Riga 26:
 
   
 
   
 
   &lt;TABLE border=1>
 
   &lt;TABLE border=1>
   &lt;TR>&lt;TD>
+
   &lt;TR><TD>
    &lt;select name="lista" onChange="combo(this)">
+
  &lt;select name="lista" &#111;nChange="combo(this)">
      &lt;option>Selezionare&lt;/option>
+
          &lt;option>Selezionare&lt;/option>
 
       &lt;option>alfa&lt;/option>
 
       &lt;option>alfa&lt;/option>
 
       &lt;option>beta&lt;/option>
 
       &lt;option>beta&lt;/option>
Riga 43: Riga 41:
 
   
 
   
 
  &lt;/html>
 
  &lt;/html>
 
 
 
Il codice Gambas, invece, potrà essere il seguente:
 
Il codice Gambas, invece, potrà essere il seguente:
 
  '''Public''' Sub Form_Open()
 
  '''Public''' Sub Form_Open()
Riga 57: Riga 53:
 
  '''Public''' Procedure codiceHtml()
 
  '''Public''' Procedure codiceHtml()
 
   
 
   
  <FONT color=gray>' ''Viene chiamato il file html:''</font>
+
  <FONT color=gray>' ''Carica il codice contenuto dal file html:''</font>
   WebView1.Url = "file.html"
+
   WebView1.HTML = File.Load("<FONT color=gray>''/percorso/del/file.html"''</font>)
 
   
 
   
 
  '''End'''
 
  '''End'''
Riga 99: Riga 95:
 
   &lt;TABLE border=1>
 
   &lt;TABLE border=1>
 
   &lt;TR>&lt;TD>
 
   &lt;TR>&lt;TD>
     &lt;select name="lista" <select id="prova" onChange="combo()">
+
     &lt;select name="lista" <select id="prova" &#111;nChange="combo()">
 
       &lt;option>Selezionare&lt;/option>
 
       &lt;option>Selezionare&lt;/option>
 
       &lt;option>alfa&lt;/option>
 
       &lt;option>alfa&lt;/option>

Versione delle 20:50, 30 dic 2021

Il caso in questione è quello in cui si intende inserire un ComboBox all'interno di una cella di una tabella, entrambi ovviamente generati con il codice HTML. Inoltre, si intende passare il valore di un elemento selezionato del ComboBox al codice Gambas.

Si farà uso dell'oggetto WebView, di cui si potrà disporre attivando anche il componente gb.qt5.webkit.

Riguardo al secondo obiettivo posto, poiché né protocollo HTML, né quello JavaScript consentono di salvare un contenuto in un file si procederà con uno stratagemma a scrivere il valore selezionato del ComboBox nell'oggetto WebView, cosicché potrà essere recuperato leggendo il contenuto della sua proprietà .Text. Questa operazione, però, comporterà la scomparsa sia della tabella che del ComboBox precedentemente creati. Si dovrà dunque fare sì che sia la tabella che il ComboBox vengano nuovamente generati.

In un file html a parte verrà posto il seguente codice "HTML/Javascript": [Nota 1]

<html>

<head>

 <script language="javascript" type="text/javascript">

  function combo(lista) {
    var idx = lista.selectedIndex;
    var contenuto = lista.options[idx].innerHTML;

    document.write(contenuto);

  }
 </script>

</head>

<body>

 <TABLE border=1>
 <TR><TD>
  <select name="lista" onChange="combo(this)">
          <option>Selezionare</option>
     <option>alfa</option>
     <option>beta</option>
     <option>gamma</option>
     <option>delta</option>
   </select>
<TD>cella</td></tr>
<TR><TD>cella</td><TD>cella</td></tr>
</table>

</body>

</html>

Il codice Gambas, invece, potrà essere il seguente:

Public Sub Form_Open()

  Me.Show

  codiceHtml()

End


Public Procedure codiceHtml()

' Carica il codice contenuto dal file html:
  WebView1.HTML = File.Load("/percorso/del/file.html")

End


Public Sub Button1_Click()

' Viene raccolto il contenuto della proprietà ".Text" dell'oggetto "WebView":
  Print "Valore selezionato: "; WebView1.Text

' Si ripristina la tabella ed il "ComboBox" incorporato:
  codiceHtml()

End


Note

[1] Il codice HTML, volendo, potrà anche essere questo:

<html>

<head>

 <script language="javascript" type="text/javascript">

  function combo() {
   
    var selectedCombobox = (comboForm.prova.value);

    document.write(selectedCombobox);

  }

</script>

</head>

<body>

 <TABLE border=1>
 <TR><TD>
   <select name="lista" <select id="prova" onChange="combo()">
     <option>Selezionare</option>
     <option>alfa</option>
     <option>beta</option>
     <option>gamma</option>
     <option>delta</option>
   </select>
<TD>cella</td></tr>
<TR><TD>cella</td><TD>cella</td></tr>
</table>

</body>

</html>