Visualizzazione risultati 1 fino 12 di 12

Discussione: Aggiunta dati in modo dinamico

  1. #1
    Guest

    Predefinito Aggiunta dati in modo dinamico

    Ragazzi ho un form con aggiunta e rimozione(tramite JS) di due campi inputbox.

    Codice:
    <input type="button" value="Aggiungi" onClick="addRow('dataTable')" /> 
    					<input type="button" value="RRimuovi" onClick="deleteRow('dataTable')"  /> 
    					
    				</p>
                   <table id="dataTable" class="form" border="1">
                      <tbody>
                        <tr>
                          <p>
    						<td><input type="checkbox" required="required" name="chk[]" checked="checked" /></td>
    						<td>
    							<label>Nome </label>
    							<input type="text" class="form-control" placeholder="<?php echo $rws['name'];?>" name="name"value="<?php echo $rws['name'];?>" id="Name">
    						 </td>
    						 <td>
    							<label>URL </label>
    							<input type="text" class="form-control" placeholder="<?php echo $rws['name2'];?>" name="name2"value="<?php echo $rws['name2'];?>" id="URL">
    						 </td>

    I dati da me inseriti vengono tranquillamente immagazzinati nel DB tramite il pasaggio di variabili in php, ma inserendo non so anche 1000 campi, quello che verrà memorizzato sarà sempre l'ultimo.
    Devo usare un ciclo? E ipotizziamo di dover impostare un limite a 1000, dovrei creare 1000 variabili nel database?O c'è un modo per farle creare in automatico? grazie

  2. #2
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    Devi chiamare i campi con name del tipo "nome[]", quindi poi in PHP avrai $_POST['nome'] che sarà un array.

    Ciao!

  3. #3
    Guest

    Predefinito

    Codice PHP:
    <tbody>

    <tr>
    <p>
    <td >

    </td>
    <td><input type="checkbox" required="required" name="chk[]" checked="checked" /></td>
    <td>
    <label>Nome </label>
    <input type="text" class="form-control" placeholder="<?php echo $rws['name'];?>" name="name[$a]"value="<?php echo $name[$a];?>" id="Name">
    </td>
    <td>
    <label>URL </label>
    <input type="text" class="form-control" placeholder="<?php echo $rws['name2'];?>" name="name2[$a]"value="<?php echo $name2[$a];?>" id="URL">
    </td>

    </td>
    </p>
    </tr>

    </tbody>
    Nulla, come prima.. Ho provato sia con il POST che con il REQUEST, visto che l'ho usato come metodo principale di tutto il file submit.
    Dovrei forse mettere una query sql per la creazione della riga nuova? Perchè al momento ho solo due campi nel DB, appunto name e name2.

  4. #4
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    Dal codice non si capisce poi js come aggiungerà le cose. Hai modo di linkare direttamente la pagina?

    Ciao!

  5. #5
    Guest

    Predefinito

    Codice HTML:
    function addRow(tableID) {
    	var table = document.getElementById(tableID);
    	var rowCount = table.rows.length;
    	if(rowCount < 1000){							
    		var row = table.insertRow(rowCount);
    		var colCount = table.rows[0].cells.length;
    		for(var i=0; i<colCount; i++) {
    			var newcell = row.insertCell(i);
    			newcell.innerHTML = table.rows[0].cells[i].innerHTML;
    		}
    	}else{
    		 alert("Hai raggiunto il numero massimo!");
    			   
    	}
    }
    
    function deleteRow(tableID) {
    	var table = document.getElementById(tableID);
    	var rowCount = table.rows.length;
    	for(var i=0; i<rowCount; i++) {
    		var row = table.rows[i];
    		var chkbox = row.cells[0].childNodes[0];
    		if(null != chkbox && true == chkbox.checked) {
    			if(rowCount <= 1) { 						
    				alert("Non puoi rimuovere tutti i campi!!");
    				break;
    			}
    			table.deleteRow(i);
    			rowCount--;
    			i--;
    		}
    	}
    }
    Questo è il javascripit.

  6. #6
    Guest

    Predefinito

    Questa invece è la parte di codice dell'aggiunta.


    Codice PHP:
    <div class="col-md-6">
    <div class="form-group float-label-control">
    <fieldset class="row2">
    <legend>FormCustom</legend>
    <p>
    <input type="button" value="Aggiungi" onClick="addRow('dataTable')" />
    <input type="button" value="RRimuovi" onClick="deleteRow('dataTable')" />

    </p>
    <table id="dataTable" class="form" border="1">
    <tbody>
    <tr>
    <p>
    <td><input type="checkbox" required="required" name="chk[]" checked="checked" /></td>
    <td>
    <label>Nome </label>
    <input type="text" class="form-control" placeholder="<?php echo $rws['bx_name'];?>" name="bx_name"value="<?php echo $rws['bx_name'];?>" id="Name">
    </td>
    <td>
    <label>URL </label>
    <input type="text" class="form-control" placeholder="<?php echo $rws['bx_name2'];?>" name="bx_name2"value="<?php echo $rws['bx_name2'];?>" id="URL">
    </td>

    </td>
    </p>
    </tr>
    </tbody>
    </table>
    <div class="clear"></div>
    </fieldset>
    <label for="">Facebook</label>
    <textarea class="form-control" placeholder="<?php echo $rws['user_facebook'];?>" rows="10" placeholder="<?php echo $rws['user_facebook'];?>" name="user_facebook" value="<?php echo $rws['user_facebook'];?>"><?php echo $rws['user_facebook'];?></textarea>
    </div>
    <div class="form-group float-label-control">
    <label for="">Birthday</label>
    <input type="date" class="form-control" placeholder="<?php echo $rws['user_twitter'];?>" name="user_dob" value="<?php echo $rws['user_dob'];?>">
    </div>
    <div class="form-group float-label-control">
    <label for="">Profession</label>
    <input type="text" class="form-control" placeholder="<?php echo $rws['user_youtube'];?>" name="user_profession" value="<?php echo $rws['user_profession'];?>" id="profession">
    </div>

    <div class="form-group float-label-control">
    <label for="">Country</label>
    <input type="text" class="form-control" placeholder="<?php echo $rws['user_country'];?>" name="user_country" value="<?php echo $rws['user_country'];?>" id="country">
    </div>
    </div>

    Per visualizzare la pagina in questione bisogna registrarsi quindi non vorrei generare troppo fastidio!

  7. #7
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    Esatto, invece di:
    Codice:
    name="bx_name"
    e
    Codice:
    name="bx_name2"
    Metti:

    Codice:
    name="bx_name[]"
    e
    Codice:
    name="bx_name2[]"
    In questo modo avrai tutti i dati come ti dicevo nel mio primo messaggio: in $_POST['bx_name'] e $_POST['bx_name2'] (o, se usi get, $_GET['bx_name'] e $_GET['bx_name2']), avrai un array contenente tutti i dati invece di una singola riga.

    Ciao!

  8. #8
    Guest

    Predefinito

    Ciao e grazie per la pazienza!
    Nulla, non mi va.. o meglio ho apportato le modifiche ma forse avrò dimenticato qualcosa.
    Ti posto il codice modificato con le aggiunte fatte sottolineate.
    Questo è lo script del form:
    Codice:
    <form action="components/update-profile.php" method="post" enctype="multipart/form-data" id="UploadForm">
        <!-- Nav tabs -->
        <ul class="nav nav-tabs">
          <li class="active"><a href="#general" data-toggle="tab">Account</a></li>
          <li><a href="#personal" data-toggle="tab">Contatti</a></li>
    	  
        </ul>
        <!-- Tab panes -->
        <div class="tab-content">
            <div class="tab-pane fade in active" id="general">         
                <div class="col-md-6">
    			<label for="">Username</label>
                    <div class="form-group float-label-control">
                       <label for="">La tua Username è : <?php echo $rws['user_username'];?></label>      
                                            </div>
                    <label for="">Bid</label>
                    <div class="form-group float-label-control">
                            
                            <div class="input-group">
                                <span class="input-group-addon"><?php echo $rws['user_code'];?></span>
                                <fieldset disabled> 
                                    <input type="text" class="form-control" placeholder="<?php echo $rws['user_bid'];?>" name="user_username" value="<?php echo $rws['user_bid'];?>" id="disabledTextInput" autocomplete="off">
                                </fieldset>  
                            </div>
                        </a>
                    </div>
                   
                    <div class="form-group float-label-control">
                        <label for="">Avatar</label>
                        <input name="ImageFile" type="file" id="uploadFile"/>
                        <div class="col-md-6">
                            <div class="shortpreview">
                                <label for="">Previous Avatar </label>
                                <br> 
                                <img src="userfiles/avatars/<?php echo $rws['user_avatar'];?>" class="img-responsive">
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="shortpreview" id="uploadImagePreview">
                                <label for="">Current Uploaded Avatar </label>
                                <br> 
                                <div id="imagePreview"></div>
                            </div>
                        </div>
                    </div>
                </div>  
                <div class="col-md-6">
                    
                    <div class="form-group float-label-control">
                        <label for="">Password</label>
                        <input type="password" class="form-control" placeholder="<?php echo $rws['user_password'];?>" name="user_password" value="<?php echo $rws['user_password'];?>">
                    </div>
                    <div class="form-group float-label-control">
                        <label for="">Email</label> 
                        <input type="text" class="form-control" placeholder="<?php echo $rws['user_email'];?>" name="user_email" value="<?php echo $rws['user_email'];?>">
                    </div>  
                </div>
            </div>
            <div class="tab-pane fade" id="personal">
                
    			<div class="col-md-6">
    			<fieldset class="row2"> 
                    <legend>FormCustom</legend> 
                    <p>  
                        <input type="button" value="Aggiungi" onClick="addRow('dataTable')" />  
                        <input type="button" value="RRimuovi" onClick="deleteRow('dataTable')"  />  
                         
                    </p> 
                   <table id="dataTable" class="form" border="1"> 
                      <tbody> 
                        <tr> 
                          <p> 
                            <td><input type="checkbox" required="required" name="chk[]" checked="checked" /></td> 
                            <td> 
                                <label>Nome </label> 
                                <input type="text" class="form-control" placeholder="<?php echo $rws['bx_name'];?>" name="bx_name[]"value="<?php echo $rws['bx_name'];?>" id="Name"> 
                             </td> 
                                                      
                             </td> 
                            </p> 
                        </tr> 
                        </tbody> 
                    </table> 
                    <div class="clear"></div> 
                </fieldset> 
                </div>
            </div>
    		
    		 
    		
        </div>     
        <br>
        <div class="submit">
            <center>
                <button class="btn btn-primary ladda-button" data-style="zoom-in" type="submit"  id="SubmitButton" value="Upload" />Salva le modifiche</button>
            </center>
        </div>
    </form>

  9. #9
    Guest

    Predefinito

    Questo è invece l'evento Salva in php, dove credo di aver sbagliato sintassi quando richiamo aggiorno bx_name e $sql3(nella parte finale del codice).
    Codice PHP:
    <?php
    ini_set
    ("display_errors",1);
    session_start();
    $temp=$_SESSION['user_username'];
    if(isset(
    $_POST)){
    require
    '../_database/database.php';
    $Destination = '../userfiles/background-images';
    if(!isset(
    $_FILES['BackgroundImageFile']) || !is_uploaded_file($_FILES['BackgroundImageFile']['tmp_name'])){
    $BackgroundNewImageName= 'default-background.jpg';
    move_uploaded_file($_FILES['BackgroundImageFile']['tmp_name'], "$Destination/$BackgroundNewImageName");
    }
    else{
    $RandomNum = rand(0, 9999999999);
    $ImageName = str_replace(' ','-',strtolower($_FILES['BackgroundImageFile']['name']));
    $ImageType = $_FILES['BackgroundImageFile']['type'];
    $ImageExt = substr($ImageName, strrpos($ImageName, '.'));
    $ImageExt = str_replace('.','',$ImageExt);
    $ImageName = preg_replace("/\.[^.\s]{3,4}$/", "", $ImageName);
    $BackgroundNewImageName = $ImageName.'-'.$RandomNum.'.'.$ImageExt;
    move_uploaded_file($_FILES['BackgroundImageFile']['tmp_name'], "$Destination/$BackgroundNewImageName");
    }
    $sql1="UPDATE user SET user_backgroundpicture='$BackgroundNewImageName' WHERE user_username = '$temp'";
    $sql2="INSERT INTO user (user_backgroundpicture) VALUES ('$BackgroundNewImageName') WHERE user_username = '$temp'";
    $result = mysqli_query($database,"SELECT * FROM user WHERE user_username = '$temp'");
    if(
    mysqli_num_rows($result) > 0) {
    if(!empty(
    $_FILES['BackgroundImageFile']['name'])){
    mysqli_query($database,$sql1)or die(mysqli_error($database));
    header("location:../edit-profile.php?user_username=$temp");
    }
    }
    else {
    mysqli_query($database,$sql2)or die(mysqli_error($database));
    header("location:../edit-profile.php?user_username=$temp");
    }
    $Destination = '../userfiles/avatars';
    if(!isset(
    $_FILES['ImageFile']) || !is_uploaded_file($_FILES['ImageFile']['tmp_name'])){
    $NewImageName= 'default.png';
    move_uploaded_file($_FILES['ImageFile']['tmp_name'], "$Destination/$NewImageName");
    }
    else{
    $RandomNum = rand(0, 9999999999);
    $ImageName = str_replace(' ','-',strtolower($_FILES['ImageFile']['name']));
    $ImageType = $_FILES['ImageFile']['type'];
    $ImageExt = substr($ImageName, strrpos($ImageName, '.'));
    $ImageExt = str_replace('.','',$ImageExt);
    $ImageName = preg_replace("/\.[^.\s]{3,4}$/", "", $ImageName);
    $NewImageName = $ImageName.'-'.$RandomNum.'.'.$ImageExt;
    move_uploaded_file($_FILES['ImageFile']['tmp_name'], "$Destination/$NewImageName");
    }
    $sql5="UPDATE user SET user_avatar='$NewImageName' WHERE user_username = '$temp'";
    $sql6="INSERT INTO user (user_avatar) VALUES ('$NewImageName') WHERE user_username = '$temp'";
    $result = mysqli_query($database,"SELECT * FROM user WHERE user_username = '$temp'");
    if(
    mysqli_num_rows($result) > 0) {
    if(!empty(
    $_FILES['ImageFile']['name'])){
    mysqli_query($database,$sql5)or die(mysqli_error($database));
    header("location:../edit-profile.php?user_username=$temp");
    }
    }
    else {
    mysqli_query($database,$sql6)or die(mysqli_error($database));
    header("location:../edit-profile.php?user_username=$temp");
    }
    $user_firstname=$_REQUEST['user_firstname'];
    $user_lastname=$_REQUEST['user_lastname'];
    $user_email=$_REQUEST['user_email'];
    $user_password=$_REQUEST['user_password'];
    $user_profession=$_REQUEST['user_profession'];
    $user_address=$_REQUEST['user_address'];
    $user_shortbio=$_REQUEST['user_shortbio'];
    $user_longbio=$_REQUEST['user_longbio'];
    $user_dob=$_REQUEST['user_dob'];
    $user_gender=$_REQUEST['user_gender'];
    $user_country=$_REQUEST['user_country'];
    $user_website=$_REQUEST['user_website'];
    $user_facebook=$_REQUEST['user_facebook'];
    $user_twitter=$_REQUEST['user_twitter'];
    $user_googleplus=$_REQUEST['user_googleplus'];
    $user_skype=$_REQUEST['user_skype'];
    $user_github=$_REQUEST['user_github'];
    $user_youtube=$_REQUEST['user_youtube'];
    $user_vimeo=$_REQUEST['user_vimeo'];
    $user_pinterest=$_REQUEST['user_pinterest'];
    $user_bx_name=$_REQUEST['user_bx_name[]'];

    $sql3="UPDATE user SET user_firstname='$user_firstname',user_lastname='$user_lastname',user_profession='$user_profession',user_address='$user_address',user_email='$user_email',user_password='$user_password',user_shortbio='$user_shortbio',user_longbio='$user_longbio',user_dob='$user_dob',user_gender='$user_gender',user_country='$user_country',user_website='$user_website',user_facebook='$user_facebook',user_twitter='$user_twitter',user_googleplus='$user_googleplus',user_skype='$user_skype',user_github='$user_github',user_youtube='$user_youtube',user_vimeo='$user_vimeo',bx_name='$bx_name',bx_name2='$bx_name2',user_pinterest='$user_pinterest',user_bx_name[]='$user_bx_name' WHERE user_username = '$temp'";
    mysqli_query($database,$sql3)or die(mysqli_error($database));
    header("location:../edit-profile.php?user_username=$temp&request=profile-update&status=success");
    }
    ?>

  10. #10
    Guest

    Predefinito

    Ok sono arrivato al punto in cui nella tabella mi esce qualcosa..
    Solo che quel qualcosa è " Array" nella colonna di tipo char e 0 in quella int. Dove devo correggere?

  11. #11
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    Non:
    Codice PHP:
    $_REQUEST['user_bx_name[]'];
    ma:
    Codice PHP:
    $_REQUEST['user_bx_name'];
    che è (o dovrebbe essere) un array.

    Anche nel database, il campo nel database rimane comunque "user_bx_name". Quindi invece di:
    Codice:
    user_bx_name[]='$user_bx_name'
    devi mettere
    Codice:
    user_bx_name=...
    p.s: visto che hai un array, probabilmente ti servirà un ciclo. Poi devi pensare come salvare i vari dati. Se effettui l'update di quel campo per ogni "user_username = '$temp'", sovrascriveresti sempre lo stesso dato.

    Ciao!

  12. #12
    Guest

    Predefinito

    Grazie mille!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •