chiamata di una funzione esterna rispetto al file js chiamante

ans66

Utente Attivo
27 Ago 2011
155
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
2.931
166
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
155
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;