PROBLEMA Grafica sulla progettazione di un sito

Lospie

Nuovo Utente
39
2
PHP:
<?php
//qui faccio la connessione al db
?>
<html>
<head> <<link rel="stylesheet" type="text/css" href="/css/Grafica.css">
<script type="text/javascript" src="[URL]https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js[/URL]"></script>
<script type="text/javascript" src="[URL]https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js[/URL]"></script>
<script src="[URL]https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js[/URL]"></script>
<script type="text/javascript">

//funzione che vi ho chiesto ieri come aiuto
function addWord(){

$('#word_number').val(Number($('#number').val())+1);
var i=$('#word_number').val();
$('#add_word').append('<div id="word'+i+'">'+
'<input type="text" name="word[]" placeholder="word" required>'+
'<button type="button" class="aggiungi" onclick="deleteWord('+i+')">Elimina</button>'+
'<button type="button" class="elimina" onclick="addWord('+i+')">Aggiungi</button>'+
'<br>'+
'</div>');
}

function deleteWord(i){
$('#word'+i+'').remove();
}
</script>
</head>
<body>

if(isset($_SESSION['Username'])){
echo "Utente: ".$_SESSION['Username'];
?>

//qui richiamo la funzione (messa qui funziona)
<button onclick="addWord()"> clicca </button>
<form name="myForm" method="post" action="/Word.php" method="post">
<div id="add_word"></div>
<input type="hidden" id="word_number" name="word_number">
<div id="div_val" style="display: none;" class="alert" required></div>
<input type="submit" value="Aggiungi word">

</form>

<?php 
//qui creo una query e la stampo semplicemente mettendo i risultati in una tabella

?>

SE METTO IL BUTTON CHE RICHIAMA ADDWORD QUI NON FUNZIONA E MI DA L'ERRORE

<?php
}else{
echo "esegui il login, verrai reinderizzato automatincamente alla pagina del login";
header("refresh:3 ;url=Index.php");

}
?>
</body>
</html>




nel file Word.php 

<?php

//connessione al db

for($i=0; $i<sizeof($_POST['word']); $i++){ // dentro aggiunge al db o fa altro} e mi da errore in -> $_POST['word']) 
[ /CODE]



Eccolo! scusami ma non sapevo che ci fosse questo tag code!
 

Giacomo Furlan

Utente Attivo
351
87
CPU
AMD Ryzen 5900x
Dissipatore
BeQuiet! SilentLoop 2 360mm
Scheda Madre
Gigabyte X470 AORUS Gaming 7 WIFI AMD X470
HDD
Crucial P5 Plus 2 TB PCIe M.2 2280SS
RAM
Patriot Viper Steel RAM DDR4 3600 Mhz 64GB (2x32GB) C18
GPU
MSI GeForce RTX 2080 Gaming X Trio
Audio
SteelSeries Arctis 9
Monitor
Alienware AW3423DWF
PSU
EVGA SuperNOVA 650 G3, 80 Plus GOLD 650W
Case
Sharkoon TG5
OS
Windows 11, Fedora 36
Potresti per favore mostrarci il risultato del solo HTML? Vai sulla tua pagina e premi CTRL+U (o destro -> visualizza sorgente pagina) e copia/incolla tutto qui.
 

Lospie

Nuovo Utente
39
2
HTML:
<html>
<head>  <<link rel="stylesheet" type="text/css" href="/ProgettoBasi/css/Grafica.css">
         <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
         <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
         <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
         <script type="text/javascript">
            function addWord(){

              $('#word_number').val(Number($('#word_number').val())+1);
              var i=$('#word_number').val();
              $('#add_word').append('<div id="word'+i+'">'+
                                      '<input type="text" name="word[]" placeholder="word" required>'+
                                      '<button type="button" class="elimina" onclick="deleteWord('+i+')">Elimina</button>'+
                                      '<button type="button" class="elimina" onclick="addWord('+i+')">Aggiungi</button>'+

                                      '<hr>'+
                                    '</div>');
            }

            function deleteWord(i){
              $('#word'+i+'').remove();
            }
            


        


    </script>


   </head>
    <body>
  

            
        <button onclick="addWord()"> clicca </button>
                <form name="myForm" method="post"  action="/Word.php" method="post">
                        <div id="add_word"></div>
                        <input type="hidden" id="word_number" name="word_number" value="0">
                        <div id="div_val" style="display: none;" class="alert" required></div>
                        <input type="submit" value="Aggiungi Word">

                </form>


                  <table class='table'>
                
                     <th> ID </th>
                     <th> WORD </th>
                         
                    <tr id='tr'>
                    <td id='td'> 5 </td>";
                    <td id='td'> prova </td>";
                    <td id='td'> 6 </td>";
                    <td id='td'> prova2 </td>";
                    </tr>
                  </table>

                  </body>
</html>


[ /CODE]
 

Giacomo Furlan

Utente Attivo
351
87
CPU
AMD Ryzen 5900x
Dissipatore
BeQuiet! SilentLoop 2 360mm
Scheda Madre
Gigabyte X470 AORUS Gaming 7 WIFI AMD X470
HDD
Crucial P5 Plus 2 TB PCIe M.2 2280SS
RAM
Patriot Viper Steel RAM DDR4 3600 Mhz 64GB (2x32GB) C18
GPU
MSI GeForce RTX 2080 Gaming X Trio
Audio
SteelSeries Arctis 9
Monitor
Alienware AW3423DWF
PSU
EVGA SuperNOVA 650 G3, 80 Plus GOLD 650W
Case
Sharkoon TG5
OS
Windows 11, Fedora 36
Prova a vedere questo esempio:

http://jsfiddle.net/96aoentx/41/

Note:
1. Puro JavaScript (per dimostrarti che non è né più né meno difficile di jQuery)
2. Eliminato l'identificativo delle righe, perché non necessario
3. Utilizzo di event.preventDefault(), perché altrimenti se clicki su un bottone all'interno di un form, automaticamente quest'ultimo viene submittato
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Il consiglio di jquery non riguardava maggiore o minore semplicità (stiamo parlando di un pulsante per far comparire un paio di righe) ma perché si tratta di un approccio alla programmazione più corretto.

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

Giacomo Furlan

Utente Attivo
351
87
CPU
AMD Ryzen 5900x
Dissipatore
BeQuiet! SilentLoop 2 360mm
Scheda Madre
Gigabyte X470 AORUS Gaming 7 WIFI AMD X470
HDD
Crucial P5 Plus 2 TB PCIe M.2 2280SS
RAM
Patriot Viper Steel RAM DDR4 3600 Mhz 64GB (2x32GB) C18
GPU
MSI GeForce RTX 2080 Gaming X Trio
Audio
SteelSeries Arctis 9
Monitor
Alienware AW3423DWF
PSU
EVGA SuperNOVA 650 G3, 80 Plus GOLD 650W
Case
Sharkoon TG5
OS
Windows 11, Fedora 36
Comprendo il tuo punto di vista rctimelines, ma non concordo: un approcio più corretto è sapere cosa stia accadendo sotto. Non a caso si comincia sempre dal C, e solo dopo che si hanno le basi si passa al C++. E concorderai che il C++ è molto più comodo e "semplice", potendo quasi del tutto evitare l'allocamento dinamico della memoria (tanto per citarne una). Per fare una metafora è come se ad un meccanico in erba gli si chiedesse di fare il fine-tuning su una Ferrari.
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Comprendo il tuo punto di vista rctimelines, ma non concordo: un approcio più corretto è sapere cosa stia accadendo sotto. Non a caso si comincia sempre dal C, e solo dopo che si hanno le basi si passa al C++. E concorderai che il C++ è molto più comodo e "semplice", potendo quasi del tutto evitare l'allocamento dinamico della memoria (tanto per citarne una). Per fare una metafora è come se ad un meccanico in erba gli si chiedesse di fare il fine-tuning su una Ferrari.
L'esempio del C e C++ non ha niente a che vedere, trattandosi di due linguaggi diversi nel paradigma! Il C non è propedeutico al C++ e quest'ultimo non è una facility del C.

Per il resto, ho detto sopra e continuo a dissentire: non sto dicendo di utilizzare tecnologie proprietarie, ma API, framework e librerie che, come nel caso di jquery, sono praticamente una ufficiale e naturale estensione di js. Come dicevo, appunto, non bisogna ogni volta reinventare la ruota ma saper utilizzare e soprattutto conoscere gli strumenti che sono disponibili. Se poi uno vuole sapere come funziona nello specifico jquery può andare a studiarlo, così come è naturale che se lo usa dovrà sapere che esiste il DOM e che lavora su quello. Un esempio calzante è quello che ho già fatto: non è indispensabile sapere come viene implementata in assembly una istruzione per scrivere codice da compilare... magari lo si può fare per scrivere codice più efficiente, ma queste sono sottigliezze e io provengo da scuola di altri tempi in cui si contavano i byte!

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

Mursey

Super Moderatore
Staff Forum
Utente Èlite
8,232
5,659
Saper usare jQuery non ti fa esperto di Javascript.
Se lo scopo è scrivere velocemente del codice allora va bene, ma se uno vuole imparare Javascript a mio parere è meglio se jQuery non lo guarda nemmeno di striscio.

Quindi all'autore del topic posso anche dire "usa jQuery".
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili