Problema con Jquery ajax

tia.ripa_web

Nuovo Utente
14 Ott 2012
3
0
0
Ciao a tutti,
Da un paio sto cercando al soluzione a questo problema... invano...
Sto lavorando su un CMS Joomla 2.5 e ho bisogno di modificare la pagina di un componente in modo che al click di href="javascript:submitForm('') dopo una serie di controlli javascript (che ho già creato) richiama una pagina php che semplicemente prende i campi aggiuntivi che ho creato e li inserisce in un database...
Per fare questo ho inserito una funzione Jquery.ajax che dovrebbe passare i parametri alla mia pagina php che effettua l'inserimento...
Ecco la funzione:

HTML:
//controlli javascript 
if ((volno.checked) && (control1==true)) {

		//Funzione che richiama pagina php di inserimento

		var codofferta2 = $("#codofferta").value;
		var codasso2 = $("#codasso").value;

//JQUERY AJAX
	      $.ajax({
		type: "POST",
		url: '/query/query_insert_no.php',
		data: {insasso: codasso2, insofferta: codofferta2}
		});

// submit del componente

			document.ftForm.task.value = "agent_" + t;
			document.ftForm.submit();

Mentre questo è il codice php (se eseguito da solo il codice funziona e mi inserisce una riga ovviamente vuota nel db)

PHP:
<?php
$link = mysql_connect($DB_host, $DB_user, $DB_password);
if (!$link) {
	die ('Non riesco a connettermi: ' . mysql_error());
}

$db_selected = mysql_select_db($DB_name, $link);
if (!$db_selected) {
	die ("Errore nella selezione del database: " . mysql_error());
}

//recupero i campi di tipo "stringa"
		$asso      = trim($_POST['insasso']);
		$offerta     = trim($_POST['insofferta']);

		// preparo la query
		$query = "INSERT INTO Matching (Cod_Vol,Cod_Off,Cod_Ass)
				  VALUES ('VOL_NON_ISCR','$asso','$offerta')";

		// invio la query
		mysql_query($query) or die(mysql_error());	

		
		// chiudo la connessione a MySQL
		mysql_close();		
		?>

Ho provato di tutto nella modifica della funzione jquery ma niente... io ho il dubbio che per qualche strano motivo non trovi la pagina... come se l'url non sia veritiero... ma ho provato di tutto, tra url relativi ed assoluti... sempre che sia quello il problema...
Spero di essere stato chiaro e di non causare troppa confusione con i nomi delle variabili non troppo fantasiose...

p.s. Il sito che sto realizzando è per una associazione di volontariato... che ovviamente non è a scopo commerciale... quindi una mano è più che ben accetta! Grazie!
 
Ciao,
aggiungi alla chiamata ajax il metodo error() e vedi se ti restituisce qualche errore
Codice:
     //JQUERY AJAX
	      $.ajax({
		type: "POST",
		url: '/query/query_insert_no.php',
		data: {insasso: codasso2, insofferta: codofferta2},
                error: function(er) {		
                    var status = er.status;
                    var text = er.statusText;			
                    var message = status + ': ' + text;
                    $("#error").html(message);		
                }
              });
dovrai aggiungere alla pagina un div dove ti mostretrà eventuali errori
HTML:
<div id="error"></div>
Ho dato per scontato che hai richiamato la libreria jquery nel modo corretto
 
Inanzitutto grazie per la risposta...
Ho aggiunto il codice che mi hai consigliato e sembra che non venga restituito nessun errore...
Ma ho fatto una scoperta...

Allo stato attuale il db non si riempie... ma nel momento in cui commento le 2 submit del componente:

HTML:
	document.ftForm.task.value = "agent_" + t;
			document.ftForm.submit();

magicamente il db si riempie con una riga vuota... ovvero non mi prende le variabili che gli passo... ma il testo predefinito nella query viene inserito...

Dal mio punto di vista sono punto e a capo -.- ... spero che per voi possa significare qualcosa...
 
giusto!, non serve il submit sae invii i dati con ajax

prova a vedere se le variabili sono valorizzate, con due alert
Codice:
var codofferta2 = $("#codofferta").value;
alert(codofferta2);
var codasso2 = $("#codasso").value;
alert(codasso2);

o metti un var_dump($_POST) nella pagina php, dovrai aggiungere il netodo succes alla chiamata ajax pe mostrarti il risultasto in un elemento
 
allora ho lavorato al progetto e grazie all'alert sulle variabili ho realizzato qual'era il mio errore...
Praticamente quando assegnavo le variabili le assegnavo stile jquery, ma probabilmente non lo avevo contestualizzato dentro allo script generale javascript. Quindi cambiando l'assegnazione di jquery con una classica javascript ecco le mie variabili! ...... colpa mia :) ......

Ma come prima se commento quel submit javascript la funzione ajax non funziona e il mio db rimane vuoto...
Il problema che quel submit è necessario per il funzionamento del componente!
Mi spiego meglio... quel submit toglie dal "pubblico" (da visibile) un evento... io ho aggiunto un div e script per anticipare l'evento e renderlo effettivo solo dopo controlli ed inserimento nel db dei campi inseriti.
Quindi sia l'ajax che abbiamo inserito sia quel submit mi sono necessari...
Io sinceramente non so quale sia il motivo perché l'ajax non funzioni... logicamente è prima del submit e in ogni caso come dici con l'ajax non serve il submit ma non capisco come mai se c'è un submit l'ajax cessa la sua attività... senza il probabilmente mi perdo qualche pezzo per strada...
 

Discussioni simili