PROBLEMA Grafica sulla progettazione di un sito

Pubblicità
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!
 
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.
 
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]
 
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
 
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
 
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.
 
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
 
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".
 
Pubblicità
Pubblicità
Indietro
Top