chiamata di una funzione esterna rispetto al file js chiamante

ans66

Utente Attivo
27 Ago 2011
158
0
16
Ciao a tutti :byebye:

Ho tentato di chiamare un funzione da un file js ad un altro e il tutto funziona unicamente una volta sola!

Spiego meglio la cosa inserendo il codice.

File principale: tabentusc.php. File contenuto nella finestra dialog: tabSoggetti.php.

Ho creato una finestra dialog:

Codice:
function PopupCenterPHP(hidden_div, form_tag_div ) 
{

if(form_tag_div=="dialogPHP") {
$("#nomesog").val('');
$("#cognomesog").val('');
$("#nomesog").prop("disabled", false);
$("#cognomesog").prop("disabled", false);

//$('#nome option')[0].selected = true;    
//$('#cognome option')[0].selected = true;

// pulsanti come aggiungi
$(".uno").css('background-image', "url(images/primo2.png)");
$(".due").css('background-image', "url(images/indietro2.png)");
$(".cinque").css('background-image', "url(images/avanti2.png)");
$(".sei").css('background-image', "url(images/ultimo2.png)");
$(".sette").css('background-image', "url(images/piu2.png)");
$(".otto").css('background-image', "url(images/ok.png)");
$(".nove").css('background-image', "url(images/no.png)");
$(".tredici").css('background-image', "url(images/vai2.png)");
$(".quattordici").css('background-image', "url(images/canc2.png)");
$(".quindici").css('background-image', "url(images/close.png)");

 
$("#nome").prop("disabled", true);
$("#cognome").prop("disabled", true);
}



$("#"+hidden_div).show();

$("#"+form_tag_div).dialog({
  height: 500,
  width: 1100,
  position: {
                    my: "center",
                    at: "center",
                    of: $("body"),
                    within: $("body")
            }

});

}

il Div hidden ($("#"+hidden_div) contiene al suo interno un file php relativo al secondo form che appare come popup:

Codice:
<span id="indivphp"style="visibility: hidden">
<div id="dialogPHP" title="" value="">
<?php include "tabSoggetti.php";   ?>
</div>
</span>

imm.jpg

Devo chiamare una funzione contenuta nel file php "tabSoggetti" che verifica i dati da inserire e se corretti le inserisce nel database dal file principale tabentusc.php.
Di seguito il codice chiamante

Codice:
var cognNome=$("#cognomesog").val();

cognNome=cognNome.toUpperCase();
var cognNomesplit=cognNome.split(" ");
var cognomeinSplit=cognNomesplit[0];

server=$("#server").val();
user=$("#user").val();
passw=$("#passw").val();

VerificaParent(server, user, passw, cognomeinSplit);

e quello chiamato:

Codice:
var VerificaParent;

// JavaScript Document
$( document ).ready(function() {

VerificaParent = function (server, user, passw, cogn) {
//function VerificaParent(server, user, passw, cogn) {
var funzione="FindforCognNome"; 
var xURL = "characteristicsFindSogg.php?funzione="+funzione+"&server="+server+"&user="+user+"&passw="+passw+"&passw="+passw+"&CognNome="+cogn;
var DaTabEU=GetData("verifica", xURL,"");
return
}

function AvvisiAlert( tipoAlert) {   

switch(tipoAlert) {
    case 1:                // campo vuoto
        alert("campo vuoto!!");
        Ripristina(); 
        return false;
        break;
    case 2:
        alert("Nomi diversi nei due campi!!");
        Ripristina();
        return false;
        break;
    case 3:
        alert("Record non modificabile essendo presente nella Tabella [entusc]!!");
        Ripristina();
        return false;
        break;
    case 4:
        alert("Cancellazione annullata!!");
        Ripristina();
        return false;
        break;
    case 5:
        alert("Cognome e nome uguali nei due campi!!");
        Ripristina();
        return false;
        break;
    
   
    
}

return 0;
}


function GetData(form_tag, xURL, mes)
	{
		  mes = mes || "";
      
			var xmlhttp=false;
       
      
			if (!xmlhttp && typeof XMLHttpRequest!='undefined')
			{
				try { xmlhttp = new XMLHttpRequest(); }
				catch (e) { xmlhttp = false; }
			}
			if (!xmlhttp && window.createRequest)
			{
				try { xmlhttp = window.createRequest(); }
				catch (e) { xmlhttp = false; }
			}

			xmlhttp.onreadystatechange=function()
			{
				if (xmlhttp.readyState===4 && xmlhttp.status===200)
				{
					
          data = xmlhttp.responseText;
          
                                        
          if (form_tag=="") { SetValuesTesti(jQuery.parseJSON(data)); return  }
          if (form_tag=="ins") { SetIns(data, mes); return  }
          if (form_tag=="verifica") { SetVerif(data); return   }
          if (form_tag=="trova") { SetValuesFind(jQuery.parseJSON(data)); return  }
          
          SetValues(form_tag, data);
          
				}
			}
			xmlhttp.open("GET", xURL, true);
			xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
			xmlhttp.send(null);
		
		return
	}
  

function SetVerif(data)  
	{
    if (data>0) { AvvisiAlert(3); ImgOkNoDisable();  return   }
    else {    
    var nome=$("#nomesog").val();
    nome=nome.toUpperCase();
    var cognNome=$("#cognomesog").val();
    cognNome=cognNome.toUpperCase();
    var rit=VerificaDati(nome, cognNome);
    if (rit!=0) { AvvisiAlert(rit); return  }
    else { AggModCanc();  }   
    }  
             
	}

function AggModCanc() {

var nome=$("#nomesog").val();
nome=nome.toUpperCase();
var cognNome=$("#cognomesog").val();
cognNome=cognNome.toUpperCase();
var cognNomesplit=cognNome.split(" ");
var cognomeinSplit=cognNomesplit[0];

// aggiungere
if (flag==1) {


var sql="INSERT INTO soggetti (CognNome, Nome, Cognome) VALUES ('"+cognNome+"', '"+nome+"', '"+cognomeinSplit+"')";
var mes="Inserimento avvenuto con successo!"; InserisciModifica(sql, mes);
// ripristinare la situazione prima del click su aggiungi
$("#nome").removeAttr("disabled");
$("#cognome").removeAttr("disabled");
$("#nomesog").prop("disabled", true);
$("#cognomesog").prop("disabled", true); 

}

}

});

Ho provato anche con window.VerificaParent(server, user, passw, cognomeinSplit) { } ma si è comportato allo stesso modo (prima volta ok e poi più niente).

Non riesco proprio a venirne fuori ed un aiutino sarebbe prezioso.

Grazie davvero.
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
in xURL, la passw è indicata 2 volte
PHP:
				+"&user="+user
				+"&passw="+passw
				+"&passw="+passw
				+"&CognNome="+cogn;

poi al posto di "include", puoi mettere "require_once" se per caso viene eseguito 2 volte, la 2a non lo carica
(ho un caso, ma ricarica la pagina e quindi di fatto viene caricato ogni volta, non ho un esempio dove viene esegua due volte l'include, senza ricaricare la pagina)

ciao
Marino
 
Ultima modifica:

ans66

Utente Attivo
27 Ago 2011
158
0
16
problema risolto:

dovevo passare la variabile flag che dopo la prima volta risultava 0 (default).

file Popup:

Codice:
var my= { flag : 0 };

all'esterno di $( document ).ready(function() { });

Codice:
if (my.flag!=0) flag=my.flag;

al'interno della funzione AggModCanc()

file principale:

Codice:
my.flag=1;
 
Discussioni simili
Autore Titolo Forum Risposte Data
C [Javascript] Chiamata di una funzione da *.js esterno Javascript 1
G Funzione che resta in ascolto per una chiamata esterna Javascript 1
D Problema nella chiamata ad una funzione javascript da href Ajax 2
M Chiamata di una funzione che contenga un array PHP 13
M Problema funzione chiamata una volta solo in javascript Javascript 1
M [XAMARIN] Accettare una chiamata telefonica al click su bottone Sviluppo app per Android 3
D [PHP] chiamata metodi da una classe PHP 3
A progressbar con conteggio record da una chiamata Ajax Ajax 1
U Fare una chiamata post con Angularjs Javascript 3
P Portare fuori il contenuto di una chiamata ajax dentro un iframe Ajax 0
D Visibilità del codice restituito da una chiamata Ajax Ajax 8
R valore value di un id da passare in chiamata ajax Ajax 3
M Fullcalendar in Codeigniter, un aiuto per la chiamata $ajax ? jQuery 0
M PHP e chiamata SOAP PHP 6
felino ASP.net MVC: Exception e chiamata AJAX ASP.NET 1
motleyrulez Chiamata Rest Api durante Redirect PHP 1
C la chiamata ajax non ritorna alcun dato Ajax 1
motleyrulez Chiamata ajax per tabella php PHP 3
G Eseguire codice solo al termine della chiamata ajax Ajax 1
A [PHP] Web app Rest chiamata Get PHP 4
A [PHP] Web App REST chiamata GET PHP 3
M [Xamarin] personalizzare la schermata della chiamata in arrivo Sviluppo app per Android 0
otto9due Chiamata ajax su due url è possibile? Ajax 0
G Chiamata ajax restituisce errore random Ajax 1
A redirect da pagina php chiamata da ajax PHP 2
C Problema chiamata Ajax Ajax 2
A Chiamata funzione PHP con onclick PHP 8
localhost.nicola [Javascript] JS non esegue funzioni su bottoni stampati da chiamata AJAX Javascript 1
F Chiamata HTML da form PHP 6
L Chiamata node js Javascript 0
P Chiamata ajax che non ne vuole sapere di funzionare Ajax 5
M Problema chiamata Ajax per vista Griglia o vista Lista Ajax 1
T [JavaScript & Ajax] Eseguire script dopo chiamata A Ajax 2
B Evento blur chiamata file php jQuery 1
V Chiamata funzione php da javascript Ajax 3
A non esegue sempre la chiamata al server Ajax 1
A problema con chiamata ajax Ajax 1
L Chiamata ajax su input in tabella jQuery 1
A Problema recupero valori da select con chiamata ajax Ajax 1
S Gallery con Tag foto: problema doppia chiamata ajax con JQuery jQuery 2
GoshMaledetto problema ritorno valori php da chiamata ajax Ajax 9
C Chiamata AJAX con metodo load non va, cosa sbaglio? Ajax 2
minatore Errore di chiamata PHP 9
M ajax chiamata sincrona funziona con ie e non con firefox Javascript 3
M problema scope variabili chiamata ajax Javascript 2
P Registrazione audio in chiamata Java 2
L errore:stato della chiamata 0. MA PERCHE??? Ajax 0
Eugene Chiamata multipla di query PHP 3
P C# Salvare una colonna del DataGridView XML 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0

Discussioni simili