[PHP] [HTML] Action direttamente associate a onmouseover

tanoferr

Nuovo Utente
22 Ago 2018
6
0
1
Salve ragazzi,

Mi trovo davanti ad un problema che non riesco proprio a risolvere.Ho realizzato una griglia di dimensione fissa(nel mio caso 5x10) dove ogni casella della griglia ha al suo interno un button..Voglio che in relazione al passaggio del mouse su una casella si colori quella casella di verde e le successive fino al valore che ho estratto dal database....

Ora dato che devo estrapolare un valore dal database devo usare PHP e quindi non posso usare onmouseover per ricollegarmi ad un script JAVASCRIPT perchè come da nozione base non posso usare php dentro javascript

Come posso fare??

Avevo pensato di usare un semplicissimo form,con metodo post, che mi ricollega tramite un action ad un altra pagina php dove svolgo tutte le operazioni di mio interesse ma non riesco a far scattare il form in relazione al passaggio del mouse sulla casella(credo che non si possa proprio fare).come posso risolvere??
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.373
338
83
Al contrario di ciò che pensi si può inserire javascript in PHP ecco un esempio:
PHP:
<?php
$stringa= "#";
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa\");\n";
echo "</script>";
?>
Comunque ti sposto in PHP
 

tanoferr

Nuovo Utente
22 Ago 2018
6
0
1
ciao Max 1,

grazie della risposta, e se devo costruire una function javascript come la scritto.Ti faccio vedere il codice

PHP:
<?php
echo "<td id=\"button_td\" bg color=\"white\">".
                    "<form  method=\"post\" action=\"tento_insert_db.php\">".
                    "<input id=\"form_nascosto\" style=\"visibility:hidden\" type=\"number\"  name=\"row\"  value=$row>".
                    "<input id=\"form_nascosto\" style=\"visibility:hidden\" type=\"number\"   name=\"col\" value=$col>".
                "<button id=\"button_dentro_tabella\" onmouseover=\"evidenzio_successivi()\" type=\"submit\"> </button>"."</form>"."</td>";
?>

quello che voglio è creare la function evidenzio_successivi() che ovviamente deve essere JAVASCRIPT dove svolgere operazioni che richiedono dati php
 

Rikk73

Utente Attivo
7 Apr 2015
137
6
18
Arezzo
Un modo potrebbe essere quello di creare la pagina con il tuo form come hai postato ad esempio, poi intercetti l'evento mouseover e li dentro fai il trigger del button (con jQuery o Javascript) e simuli il click
 

tanoferr

Nuovo Utente
22 Ago 2018
6
0
1
Mi sapresti aiutare sul come fare il trigger del button in JavaScript e come simulare il click che non ne ho idea...
 

Rikk73

Utente Attivo
7 Apr 2015
137
6
18
Arezzo
Codice:
document.addEventListener('readystatechange',function(){
  if (document.readyState === 'complete'){
    var btn = document.getElementById('id_del_button');
    btn.addEventListner('mouseover', function(){
      btn.click();
    });
  }
});

L'ho scritto al volo quindi va ricontrollato, comunque è un punto di patrenza
 

tanoferr

Nuovo Utente
22 Ago 2018
6
0
1
quindi in questo modo mi simula il click del mouse e riesco ad avere i valori del form definiti ed usabili??
 

Rikk73

Utente Attivo
7 Apr 2015
137
6
18
Arezzo
è uno script javascript che, dopo che la pagina è completamente caricata, aggiunge ad un elemento specifico del DOM con id 'id_del_button' l'evento mouse over, quindi quando il mouse passerà sopra quell'elemento sarà come se l'utente l'avesse cliccato.
Chiaramente questo è un esempio banale di come puoi fare, dopo sta a te adattarlo alle tue esigenze
 

tanoferr

Nuovo Utente
22 Ago 2018
6
0
1
ciao Rikk73 ho utilizzato lo script che tu mi hai gentilmente fornito , funziona ma riscontro la necessità di aver un ulteriore peculiarità..Se guardi il codice da me inserito qualche giorno fa io ho un form .Ora c'è un modo che mi dia la possibilità di settare le due variabili POST del form correttamente. Ti spiego io vorrei che al passaggio del mouse vado nella funzione che mi simula il click, evidenzio_successivi() . La simulazione del click mi fa entrare nella action del form ma i due valori ROW E COL del form non sono settati..come faccio a settarli??
 

Rikk73

Utente Attivo
7 Apr 2015
137
6
18
Arezzo
intanto per i campi input nascosti invece di impostare lo style, fai meglio e prima così
Codice:
  <input type=\"hidden\" name=\"row\" value=\"$row\" />
  <input type=\"hidden\" name=\"col\" value=\"$col\" />

Dal codice che avevi postato non ti funzionava perché avevi scritto value=$row (senza le virgolette)
 

tanoferr

Nuovo Utente
22 Ago 2018
6
0
1
cioa Rikk73 ho apportato l'ultima modifica da te consigliata ma niente penso che il problema sia più subdolo....il mio obiettivo è "passando semplicemente il puntatore del mouse sugli slot, automaticamente si devono colorare di verde tutti gli slot che verrebbero prenotati nel caso in cui si facesse click su quello slot. Se non è possibile prenotare tutti gli slot richiesti, quelli prenotabili devono essere colorati di rosso anziché di verde. Effettuando il click sullo slot il sistema deve, senza ulteriori azioni da parte dell'utente, effettuare una richiesta al server per prenotare il numero di slot richiesti a partire da quello del click".

ti posto l'intero codice della pagina PHP(non è tutto perche il forum pone un limite superiore di caratteri mac per messaggio
PHP:
<html>
<?php

?>
<head>
    <link rel="stylesheet" type="text/css" href="stile_pagina.css">
    <script>
     function evidenzio_cella()
    {
     var btn = document.getElementById('button_dentro_tabella');
        btn.click();
    }
   
     </script>
 
</head>
<body>
    <div class="bar_orizzontal"><h1 align="center">Gestione Prenotazioni</h1>
            <h2  align="center" >Area Riservata</h2>
     
    </div>
 
    <div><ul id="ul_registrato"><li><a href="session_destroy.php">Log_out</a></li></ul></div>

<div>
    <table id="inserimento_slot">
            <form method="post"  name="n_slot" action="set_numero_slot.php">
                <td>numero_slot(DEFAULT 6)</td>
                <tr><td><input type="number" name="slot"></td></tr>
                <tr><td><input type="submit" value="invio" onclick="setslot();"></td></tr>
            </form></table></div>
 
 
<div>
    <table id="inserimento">
        <form action="tento_delete_db.php">
            <tr><td align="right"><input type="submit" value="cancella">  </td></tr>
        </form></table></div>
  
   
  
<div id="griglia_registrato">
 
<?php
    if(!isset($_SESSION['username']))
        $_SESSION['username']=" ";
 
    if(!isset($_SESSION['n_slot']))
        $_SESSION['n_slot']=SLOT_DEFAULT;
 
 
    if(!isset($_SESSION['posizionamento_non_consentito']))
        $_SESSION['posizionamento_non_consentito']=0;
 
     if(  $_SESSION['posizionamento_non_consentito']==1){
        echo "<script type='text/javascript'>alert('Inserimento non consentito');</script>";
        $_SESSION['posizionamento_non_consentito']=0;
   }
 
 
    $email=$_SESSION['username'];
    $numero_slot_richiesti=$_SESSION['n_slot'];
    $griglia=stampa_prenotazioni_my_user($email);

$colore=$_SESSION['colore_user'];
 
        echo "<table id=\"rappresentazione_griglia_registrato\"";
         echo"<tr bgcolor=\"white\">";
        for ($row = 0; $row < 5; $row++) {
                echo"<tr bgcolor=\"white\">";
            for ($col = 0; $col < 10; $col++) {
                 
                 if( $griglia[$row][$col] == 0)
                        echo "<td id=\"button_td\" bg color=\"white\">".
                        "<form  method=\"post\" action=\"evidenzio.php\">".
                        "<input id=\"form_nascosto\" style=\"visibility:hidden\" type=\"number\"  name=\"row\"  value=\"$row\">".
                        "<input id=\"form_nascosto\" style=\"visibility:hidden\" type=\"number\"   name=\"col\" value=\"$col\">".
                        "<button id=\"button_dentro_tabella\" onmouseover=\"evidenzio_cella();\"  type=\"submit\"> </button>"."</form>"."</td>";
          
      
                  
                }
        echo "<tr/>";
    }
    echo "</table>";

 ?>
il mio obiettivo è che quando sono in questo if ( if($_SESSION['doppio_click']== 0 && $griglia[$row][$col] == 0) ) devo riuscire a salvarmi le effettive coordinate della cella dove passo con il mouse ma cosi non è perchè viene evidenziata sempre la prima casella dall'alto.Vorrei risolvere il problema senza stravolgere il codice anche perchè credo esista un metodo più semplice :)
 
Ultima modifica di un moderatore:

Rikk73

Utente Attivo
7 Apr 2015
137
6
18
Arezzo
immagino che gli id che hai scritto nel codice siano solo di esempio, ma ricorda che ogni id deve essere univoco nella stessa pagina, se la funzione cerca sempre 'bottone_dentro_tabella' si ferma al primo che trova nella pagina.
dai agli id un identificatore univoco, ad esempio "... id=' "button_".$row."_".$col." ' ...", oppure (forse meglio direi, lascia perdere l'id che se non è obbligatorio (a meno che non ti serva per altre cose) e passa dei parametri alla funzione javascript, ad esempio il $row e $col, dai quali puoi riuscire a risalire a quale zona evidenziare
 
Discussioni simili
Autore Titolo Forum Risposte Data
F [PHP] [HTML] File legato ad action in un form PHP 1
S Html con form e action .php PHP 6
C Dopo chiusura del tag php la stringa html va a capo PHP 1
A inserire variabile php colore in div html PHP 2
E Errore di lettura php in html PHP 8
M HTML e PHP Offerte e Richieste di Lavoro e/o Collaborazione 3
C Form email php su pagina index.html? PHP 21
Z Mod_rewrite da HTML in PHP PHP 3
C [RISOLTO]Inserimento variabile php in input html PHP 20
C Risalire al php da html PHP 27
webmachine [PHP] [JAVASCRIPT] Form strano in HTML PHP PHP 1
F [PHP] Form html PHP 2
G FORM HTML E PHP PHP 0
F [PHP] [HTML] Tabella cambia pagina responsive PHP 8
M [PHP] [HTML] Centrare in verticale un pulsante in una tabella PHP 3
M [PHP] Istruzione "echo" all'interno di codice html PHP 2
F [PHP] Importare file CSV in HTML PHP 12
T [PHP] [HTML] Dettagli che cambiano PHP 5
M [PHP] Come inserire codice html in un ciclo while PHP 2
T con oop creare un ciclo per una pagina dinamica html con php PHP 3
F [PHP] [HTML] Formmail PHP 0
ANDREA20 [PHP] [HTML] crea form di contatto PHP 4
D [PHP] [HTML] Pagina con permessi amministratore PHP 6
L [Wordpress]Precedenza Index.php a Index.html WordPress 1
Angelo Russo [PHP] [HTML] form contatti PHP 0
F [PHP] Importare file CSV in HTML PHP 3
C [PHP] Pagina html che legge file txt PHP 41
GiErre [PHP] [HTML] Disabilitare un link in funzione della piattaforma PHP 7
Y [PHP] [HTML] Modificare i quadranti PHP 1
A [PHP] Inserimento url dinamici in pagina html PHP 3
Y [PHP] [HTML] Pagina referenti PHP 5
trattorino [PHP] [HTML] redirect iniezione su firefox PHP 5
D Come intrecciare PHP all'HTML PHP 1
S [PHP] [HTML] Come creare un grafico dinamico PHP 4
A [Retribuito][Offro] Restyling grafico portale PHP/HTML Offerte e Richieste di Lavoro e/o Collaborazione 0
andreas88 [PHP] [HTML] Pagina preventivi form contatti PHP 5
A [PHP] Formattazione Mail HTML HTML e CSS 5
J [PHP] [HTML] Trasferire dati da un form ad un dominio diverso. PHP 3
D [PHP] [RETRIBUITO] cercasi esperto programmatore per realizzare applicazione in html e codice iframe PHP 0
R [PHP] Problema stampa array bidimensionali con formula $html.=<<<myHtml... PHP 2
M [wordpress-galleria immagini]Inserire classe php in html PHP 0
F [PHP] [HTML] Redirect Complicato PHP 5
V Passare a PHP pagina bootstrap creata in HTML PHP 1
Y Performance html/php vs php/html PHP 2
Shyson [HTML] Spostare a sinistra codice php PHP 6
trattorino [PHP] [HTML] problema form PHP 1
G [PHP] [HTML] Sito web URL e altro PHP 3
G Siti web URL e altro (PHP, HTML) Presentati al Forum 1
R pagina html + script php PHP 12
Michaelweb93 [PHP] [HTML] Urgenza implementazione - sito web PHP 6

Discussioni simili