[RISOLTO]inserire dati nel database

  • Creatore Discussione Creatore Discussione Fabio90
  • Data di inizio Data di inizio

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
Ciao forum,
non riesco a far funzionare l'inseirmento dei campi del form nel databse con jquery ajax..
L'integrazione con la pagina php è corretto solo che non riesco ad arrivarci perchè vado nella condizione di errore ("non va")

Questo è il codice che ho scritto:

<form class="dettaglio_intervento" name="intervento" id="intervento" method="post">

<input type="text" name="testo" value="testo" id="dati_descr" />

</form>

$(function() {

$("#save").click(function() {



var descr = $("#dati_descr").val();
var dataString = 'dati_descr='+ descr;



$.ajax({
url: 'save_intervento.php',
type: "POST",
data: dataString,
cache: false,

success: function() {
alert("Grazie per aver salvato i dati");
},
error: function() {
alert("Non va");
}
}); //click

}); //fine #save

}); //fine Jquery

Grazie dell'aiuto!
 
Ciao, metti questo nel error, ti dovrebbe stampare l'errore che rileva
Codice:
error: function(er) {		
                var status = er.status;
                var text = er.statusText;			
                var message = status + ': ' + text;
                alert(message);		
            }
 
Mai sentito prima
Ho provato il codice e funziona
HTML:
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script>
    $(function() {
        $("#save").click(function() {

            var descr = $("#dati_descr").val();
            var dataString = 'dati_descr='+ descr;
            $.ajax({
                url: 'save_intervento.php',
                type: "POST",
                data: dataString,
                cache: false,

                success: function() {
                    alert("Grazie per aver salvato i dati");
                },
                error: function(er) {		
                    var status = er.status;
                    var text = er.statusText;			
                    var message = status + ': ' + text;
                    alert(message);		
                }
            }); //click

        }); //fine #save

    }); //fine Jquery 
</script>
<form class="dettaglio_intervento" name="intervento" id="intervento" method="post">
    <input type="text" name="testo" value="testo" id="dati_descr" />
    <input type="button" value="salva" id="save"/>
</form>
Sicuramente ci sono degli errori nella pagina php
Prova a cercare l'errore che ti restituisce qui
 
ok grazie mille per le info! Adesso però ho apportato altre modifiche al form e il bottone salva non restituisce più nulla...
non va sia nella condizione di successo sia quella di errore...

HTML:
<form class="dettaglio_intervento" name="intervento" id="intervento" method="post">

<table class="w100">
<tr>
	<th class="ta_l va_m w5 th">ID</th>
	<td class="w5 td">
		<?php echo $intervento->getIdInterventi(); ?>
		<input id="idInterventi" type="hidden" name="idInterventi" value="<?php echo $intervento->getIdInterventi(); ?>" class="w80 ta_c" />
	</td>
	
	<th class="ta_l va_m w7 th">Stato</th>
	<td class="w10 td">
		<select id="Stato" name="Stato" disabled="disabled">
			<?php 
				$Stati = Intervento::getStates();
				foreach($Stati as $s) { 
					if($s=="Assegnato"||$s=="Chiuso"||$s=="Appuntamento") continue;
			?>
				<option value="<?php echo $s; ?>" <?php echo $s==$intervento->getStato()?"selected=\"selected\"":""; ?> ><?php echo $s ?></option>
			<?php } ?>
		</select>
       <textarea id="dati_descr" name="Note" placeholder="Empty" class="w95 color-2" rows="12"><?php echo $intervento->getNote(); ?></textarea>
<input type="button" value="salva" id="save"/>
</form>


Codice:
//altro codice..

$("#save").click(function() {
	
	var idInterventi = $("#idInterventi").val();
	var stato = $("#Stato").val();
	var descr = $("#dati_descr").val();

	


$.ajax({
        url: 'save_intervento.php',
        type: "POST",
		data: {idInterventi: idInterventi, stato: Stato, descr: Descrizione }, 
		cache: false,		
        success: function() {
           alert("Grazie per aver salvato i dati");
        },
       error: function(er) {		
                var status = er.status;
                var text = er.statusText;			
                var message = status + ': ' + text + '\nError: ' + objToString(er);
                alert(message);		
            }
    });
}); //fine #save

save_intervento.php
if(isset(
$_REQUEST['idInterventi'],
$_REQUEST['Stato'],
$_REQUEST['DataFineSLA'],
$_REQUEST['TipoIntervento'],
$_REQUEST['Note'],
$_REQUEST['Descrizione'],
$_REQUEST['Task'])
)
{
$param_ststo = sanitize($_REQUEST['Stato']);
$param_id = sanitize($_REQUEST['idInterventi']);
$param_dataSLA = sanitize($_REQUEST['DataFineSLA']);
$param_id = sanitize($_REQUEST['TipoIntervento']);
$param_note = sanitize($_REQUEST['Note']);
$param_desc = sanitize($_REQUEST['Descrizione']);
$param_task = sanitize($_REQUEST['Task']);
}
else {
sendError(HTTP_ERROR_412,'Non sono stati inviati tutti i parametri richiesti');
}

//collegamenti db ecc..

Cosa sbaglio?
 
questa riga è sbagliata
Codice:
data: {idInterventi: idInterventi, stato: Stato, descr: Descrizione },
modificala
Codice:
data: {idInterventi: idInterventi, Stato: stato, Descrizione: descr },
 
Grazie criric!
adesso funziona però mi restituisce ancora un errore. Se non lo interpreto male non riceve tutti i campi che però mi sembrano essere settati tutti correttamente..
Riposto tutto il codice

HTML:
<form class="dettaglio_intervento" name="intervento" id="intervento" method="post">

<table class="w100">
<tr>
	<th class="ta_l va_m w5 th">ID</th>
	<td class="w5 td">
		<?php echo $intervento->getIdInterventi(); ?>
		<input id="idInterventi" type="hidden" name="idInterventi" value="<?php echo $intervento->getIdInterventi(); ?>" class="w80 ta_c" />
	</td>
	
	<th class="ta_l va_m w7 th">Stato</th>
	<td class="w10 td">
		<select id="Stato" name="Stato" disabled="disabled">
			<?php 
				$Stati = Intervento::getStates();
				foreach($Stati as $s) { 
					if($s=="Assegnato"||$s=="Chiuso"||$s=="Appuntamento") continue;
			?>
				<option value="<?php echo $s; ?>" <?php echo $s==$intervento->getStato()?"selected=\"selected\"":""; ?> ><?php echo $s ?></option>
			<?php } ?>
		</select>
	</td>
	
	<th class="ta_l va_m w8 th">Priorit&agrave;</th>
	<td class="w5 td">
		<img src="<?php echo $folder_images; ?>priorita-<?php echo $intervento->getPriorita(); ?>_20px.png" alt="<?php echo $intervento->getPriorita(); ?>" />
		<input type="hidden" name="priorita" value="<?php echo $intervento->getPriorita(); ?>" class="w80 ta_c" />
	</td>

	<th class="ta_l va_m w13 th">Data fine SLA</th>
	<td class="w10 td">
		<input id="DataFineSLA" type="date" name="DataFineSLA" value="<?php echo printData($intervento->getDataFineSLA()); ?>" class="w80 ta_c" disabled="disabled" />
	</td>
	
	<th class="ta_l va_m w5 th">Tipo</th>
	<td class="w10 td"><select id="TipoIntervento" name="TipoIntervento" disabled="disabled">
			<option value="<?php echo $intervento->getTipoIntervento(); ?>" selected="selected">Classe <?php echo $intervento->getTipoIntervento(); ?></option>
			
		</select></td>
	
	<th class="ta_l th-2">Note</th>
</tr>
<tr>
	<th colspan="10" class="ta_l th-2">Descrizione</th>
	<td rowspan="4" class="va_t w30 td-2"><textarea id="dati_descr" name="Note" placeholder="Empty" class="w95 color-2" rows="12"><?php echo $intervento->getNote(); ?></textarea></td>
</tr>
<tr>
	<td colspan="10" class="va_t w100 pr_5 pl_5 td-2"><textarea name="Descrizione" placeholder="Empty" class="w100 color-2" rows="4" disabled="disabled"><?php echo $intervento->getDescrizione(); ?></textarea></td>
</tr>
<tr>
	<th colspan="10" class="ta_l th-2">Task</th>
</tr>
<tr>
	<td colspan="10" class="va_t w100 pr_5 pl_5 td-2"><textarea id="Task" name="Task" placeholder="Empty" class="w100 color-2" rows="4" disabled="disabled"><?php echo $intervento->getTask(); ?></textarea></td>
</tr>
</table>
<input type="button" value="salva" id="save"/>
</form>

HTML:
$("#save").click(function() {
	
	var idInterventi = $("#idInterventi").val();
	var stato = $("#Stato").val();
	var data = $("#DataFineSLA").val();
	var tipo = $("#TipoIntervento").val();
	var note = $("#Note").val();
	var descr = $("#dati_descr").val();
	var task = $("#Task").val();

	


$.ajax({
        url: 'save_intervento.php',
        type: "POST",
	    data: {
			   idInterventi: idInterventi, 
		       Stato: stato, 
			   DataFineSLA: data, 
			   TipoIntervento: tipo, 
			   Note:note,  
			   Descrizione: descr, 
			   Task: task, 
			   }, 
		cache: false,		
        success: function() {
           alert("Grazie per aver salvato i dati");
        },
       error: function(er) {		
                var status = er.status;
                var text = er.statusText;			
                var message = status + ': ' + text + '\nError: ' + objToString(er);
                alert(message);		
            }
    });
}); //fine #save
save_intervento.php

PHP:
if(isset(
			$_REQUEST['idInterventi'],
			$_REQUEST['Stato'],
			$_REQUEST['DataFineSLA'],
			$_REQUEST['TipoIntervento'],
			$_REQUEST['Note'],
			$_REQUEST['Descrizione'],
			$_REQUEST['Task'])
		) 
	{
		$param_id = sanitize($_REQUEST['idInterventi']); 
		$param_ststo = sanitize($_REQUEST['Stato']); 		
		$param_dataSLA = sanitize($_REQUEST['DataFineSLA']);   
		$param_id = sanitize($_REQUEST['TipoIntervento']);   
		$param_note = sanitize($_REQUEST['Note']);   
		$param_desc = sanitize($_REQUEST['Descrizione']);   
		$param_task = sanitize($_REQUEST['Task']);   
	}
		else {
		sendError(HTTP_ERROR_412,'Non sono stati inviati tutti i parametri richiesti');
	}
	
	$result = GestioneInterventi::setDatiBase($mysqli,$param_ststo, $param_dataSLA, $param_id, $param_note, $param_desc, $param_task);

Grazie della pazienza e cortesia
 
puoi comunque utilizzare la funzione serialize() che recupera tutti i campi del form indicato
Codice:
$("#save").click(function() {        
        $.ajax({
            url: 'save_intervento.php',
            type: "POST",
            data: $("#intervento").serialize(), 
            cache: false,		
            success: function() {
                alert("Grazie per aver salvato i dati");
            },
            error: function(er) {		
                var status = er.status;
                var text = er.statusText;			
                var message = status + ': ' + text + '\nError: ' + objToString(er);
                alert(message);		
            }
        });
    });
 
A wao!! molto comoda direi non la conoscevo :)

adesso che ho modificato con la tua porzione di codice mi stampa l'alert col messaggio di successo "grazie per aver salvato i dati" però in realtà non salva niente..

Adesso presumo che sia solo un problema della pagina php.. Tu che dici?
 
potrebbe andare in errore la query per qualche motivo, ti conviene stamparla con gli eventuali errori SQL
 
Ho provato a fare così il debug:
stampare la varibiale php $result però stampa esattamente quello che ho scritto..
HTML:
$("#save").click(function() {        
        $.ajax({
            url: 'save_intervento.php',
            type: "POST",
            data: $("#intervento").serialize(), 
            cache: false,		
            success: function() {
                alert ("<? echo $result ?> ");
                alert("Grazie per aver salvato i dati");
            },
            error: function(er) {		
                var status = er.status;
                var text = er.statusText;			
                var message = status + ': ' + text + '\nError: ' + objToString(er);
                alert(message);		
            }
        });
    });
 
ok ok ho risolto però la variabile $result è vuota
eppure la pagina la legge xk se cambio nome mi dice 404 not found

HTML:
$("#save").click(function() {        
        $.ajax({
            url: 'save_intervento.php',
            type: "POST",
            data: $("#intervento").serialize(), 
            cache: false,		
            success: function() {
                var myVar = "<?php echo ($result); ?>";
		alert (myVar);
                alert("Grazie per aver salvato i dati");
            },
            error: function(er) {		
                var status = er.status;
                var text = er.statusText;			
                var message = status + ': ' + text + '\nError: ' + objToString(er);
                alert(message);		
            }
        });
    });
 
Mi ero perso questa discussione, hai risolto?, se no devi mettere gli echo nella pagina save_intervento.php non nel codice javascript
 

Discussioni simili