Флажок Функция JavaScriptJavascript

Форум по Javascript
Ответить
Anonymous
 Флажок Функция JavaScript

Сообщение Anonymous »

У меня есть это представление: < /p>
@model Progetto2.Modell.CreateUtentecs

@{
ViewBag.Title = "GrigliaFormUtente";
}

function validazioneCampi() {
const cognome = document.getElementById('Cognome').value.trim();
const nome = document.getElementById('Nome').value.trim();
const comuneId = document.getElementById('ComuneId').value;
const sesso = document.getElementById('Sesso').value.trim();
const professioniID = document.getElementById('ProfessioniID').value;
const error = document.getElementById('error');

let messages = "";

if (cognome === "") messages = "Inserire un Cognome";
if (nome === "") messages = "Inserire un Nome";
if (sesso === "") messages = "Inserire il Sesso";

if (messages !== "") {
error.innerHTML = "" + messages + "";
return;
}

const proprietaIds = [];
document.querySelectorAll('input[name="ProprietaIds"]:checked').forEach(function (checkbox) {
proprietaIds.push(checkbox.value);
});

$.ajax({
type: 'POST',
url: '/Utentes/CreaUtente',
data: {
Cognome: cognome,
Nome: nome,
ComuneId: comuneId,
Sesso: sesso,
ProfessioniID: professioniID,
ProprietaIds: proprietaIds
},
success: function (response) {
$('#result').html(response);
error.innerHTML = "";
},
error: function () {
error.innerHTML = "Errore nell'inserimento";
}
});
}


Aggiungi un Nuovo Utente





Cognome
@Html.TextBoxFor(m => m.Cognome, new { @class = "form-control", id = "Cognome" })

Nome
@Html.TextBoxFor(m => m.Nome, new { @class = "form-control", id = "Nome" })

Comune
@Html.DropDownListFor(m => m.ComuneId,
Model.ListaComuni.Select(m => new SelectListItem
{
Value = m.Id.ToString(),
Text = m.NomeComune
}), new { @class = "form-control", id = "ComuneId" })

Sesso
@Html.TextBoxFor(m => m.Sesso, new { @class = "form-control", id = "Sesso" })

Professione
@Html.DropDownListFor(m => m.ProfessioneId,
Model.ListaProfessioni.Select(m => new SelectListItem
{
Value = m.ID.ToString(),
Text = m.NomeProfessione
}), new { @class = "form-control", id = "ProfessioniID" })

Proprietà

@foreach (var prop in Model.listProp)
{


@prop.Oggetto_Di_Proprieta


}









< /code>
И это другое представление: < /p>
@model Progetto2.Modell.CreateUtentecs

@{
ViewBag.Title = "GrigliaFormUtente";
}

function validazioneCampi() {
const cognome = document.getElementById('Cognome').value.trim();
const nome = document.getElementById('Nome').value.trim();
const comuneId = document.getElementById('ComuneId').value;
const sesso = document.getElementById('Sesso').value.trim();
const professioniID = document.getElementById('ProfessioniID').value;
const error = document.getElementById('error');

let messages = "";

if (cognome === "") messages = "Inserire un Cognome";
if (nome === "") messages = "Inserire un Nome";
if (sesso === "") messages = "Inserire il Sesso";

if (messages !== "") {
error.innerHTML = "" + messages + "";
return;
}

const proprietaIds = [];
document.querySelectorAll('input[name="ProprietaIds"]:checked').forEach(function (checkbox) {
proprietaIds.push(checkbox.value);
});

$.ajax({
type: 'POST',
url: '/Utentes/CreaUtente',
data: {
Cognome: cognome,
Nome: nome,
ComuneId: comuneId,
Sesso: sesso,
ProfessioniID: professioniID,
ProprietaIds: proprietaIds
},
success: function (response) {
$('#result').html(response);
error.innerHTML = "";
},
error: function () {
error.innerHTML = "Errore nell'inserimento";
}
});
}


Aggiungi un Nuovo Utente





Cognome
@Html.TextBoxFor(m => m.Cognome, new { @class = "form-control", id = "Cognome" })

Nome
@Html.TextBoxFor(m => m.Nome, new { @class = "form-control", id = "Nome" })

Comune
@Html.DropDownListFor(m => m.ComuneId,
Model.ListaComuni.Select(m => new SelectListItem
{
Value = m.Id.ToString(),
Text = m.NomeComune
}), new { @class = "form-control", id = "ComuneId" })

Sesso
@Html.TextBoxFor(m => m.Sesso, new { @class = "form-control", id = "Sesso" })

Professione
@Html.DropDownListFor(m => m.ProfessioneId,
Model.ListaProfessioni.Select(m => new SelectListItem
{
Value = m.ID.ToString(),
Text = m.NomeProfessione
}), new { @class = "form-control", id = "ProfessioniID" })

Proprietà

@foreach (var prop in Model.listProp)
{


@prop.Oggetto_Di_Proprieta


}









< /code>
И это основные методы моей службы: < /p>
public List GetUtentiConProprieta()
{
List listaUtenti = new List();

using (SqlConnection conn = new SqlConnection(_connString))
{
try
{
conn.Open();

// Query con STUFF per concatenare le proprietà
string query = @"
SELECT a.Id, a.Cognome, a.Nome, c.NomeComune, a.Sesso, p.Professione,
STUFF((
SELECT ', ' +prv.proprieta
FROM uv_anagraficaproprietavendute prv
WHERE prv.anagraficaid = a.Id
FOR XML PATH ('')
), 1, 2, '') AS ProprietaVendute,
STUFF((
SELECT ', ' +pra.proprieta
FROM uv_anagraficaproprietaacquistate pra
WHERE pra.anagraficaid = a.Id
FOR XML PATH ('')
), 1, 2, '') AS ProprietaAcquistate,
STUFF((
SELECT ', ' +pr.proprieta
FROM uv_anagraficaproprieta pr
WHERE pr.anagraficaid = a.Id
FOR XML PATH ('')
), 1, 2, '') AS ProprietaAssegnate
FROM uv_anagrafica a
LEFT JOIN Comuni c ON a.ComuneId = c.id
LEFT JOIN professioni p ON a.ProfessioniID = p.id;";

SqlCommand cmd = new SqlCommand(query, conn);
SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
listaUtenti.Add(new Utente
{
Id = Convert.ToInt32(reader["Id"]),
Cognome = reader["Cognome"].ToString(),
Nome = reader["Nome"].ToString(),
NomeComune = reader["NomeComune"].ToString(),
Sesso = reader["Sesso"].ToString(),
Professione = reader["professione"].ToString(),
ProprietaVendute = reader["ProprietaVendute"] != DBNull.Value ? reader["ProprietaVendute"].ToString() : "Nessuna",
ProprietaAcquistate = reader["ProprietaAcquistate"] != DBNull.Value ? reader["ProprietaAcquistate"].ToString() : "Nessuna",
Proprieta = reader["ProprietaAssegnate"] != DBNull.Value ? reader["ProprietaAssegnate"].ToString() : "Nessuna"
});
}
}
catch (Exception ex)
{
Console.WriteLine("Errore: " + ex.Message);
}
}

return listaUtenti;
}
public List AggiornaListaUtenti()
{
List lista = new List();
string connString = "Server=svrsql2016;Database=esercizoanagrafica;User Id=usertest;Password=usertest;TrustServerCertificate=true;";

using (SqlConnection conn = new SqlConnection(connString))
{
try
{
conn.Open();
string query = "SELECT * FROM uv_anagrafica";
SqlCommand cmd = new SqlCommand(query, conn);
SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
lista.Add(new Utente
{
Id = Convert.ToInt32(reader["Id"]),
Cognome = reader["Cognome"].ToString(),
Nome = reader["Nome"].ToString(),
NomeComune = reader["NomeComune"].ToString(),
Sesso = reader["Sesso"].ToString(),
Professione = reader["Professione"].ToString()
});
}
conn.Close();
}
catch (Exception ex)
{
Console.WriteLine("Errore: " + ex.Message);
}
}
return lista;
}

public void AggiornaUtente(int id, string Cognome, string Nome, int NomeComuneId, int ProfessioneId, string Sesso, List ProprietaId)
{
using (SqlConnection conn = new SqlConnection(_connString))
{
conn.Open();
using (var transaction = conn.BeginTransaction())
{
try
{
// Aggiorna dati utente
string query = @"UPDATE Anagrafica
SET Cognome = @Cognome, Nome = @Nome, ComuneId = @ComuneId,
Sesso = @Sesso, ProfessioniID = @ProfessioneId
WHERE id = @id";

using (SqlCommand cmd = new SqlCommand(query, conn, transaction))
{
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@Cognome", Cognome);
cmd.Parameters.AddWithValue("@Nome", Nome);
cmd.Parameters.AddWithValue("@ComuneId", NomeComuneId);
cmd.Parameters.AddWithValue("@Sesso", Sesso);
cmd.Parameters.AddWithValue("@ProfessioneId", ProfessioneId);
cmd.ExecuteNonQuery();
}

// Ottieni proprietà attuali
List proprietaAttuali = new List();
string selectQuery = "SELECT proprietaId FROM anagraficaProprieta WHERE anagraficaId = @id";

using (SqlCommand selectCmd = new SqlCommand(selectQuery, conn, transaction))
{
selectCmd.Parameters.AddWithValue("@id", id);
using (SqlDataReader reader = selectCmd.ExecuteReader())
{
while (reader.Read())
{
proprietaAttuali.Add(reader.GetInt32(0));
}
}
}

// Trova proprietà da rimuovere
var proprietaDaRimuovere = proprietaAttuali.Where(p => !ProprietaId.Contains(p)).ToList();
if (proprietaDaRimuovere.Any())
{
string deleteQuery = "DELETE FROM anagraficaProprieta WHERE anagraficaId = @id AND proprietaId = @propId";
string insertSoldQuery = "INSERT INTO anagraficaproprietavendute (anagraficaid, proprietaid) VALUES (@id, @propId)";
foreach (int propId in proprietaDaRimuovere)
{
using (SqlCommand deleteCmd = new SqlCommand(deleteQuery, conn, transaction))
{
deleteCmd.Parameters.AddWithValue("@id", id);
deleteCmd.Parameters.AddWithValue("@propId", propId);
deleteCmd.ExecuteNonQuery();
}
using (SqlCommand insertCmd = new SqlCommand(insertSoldQuery, conn, transaction))
{
insertCmd.Parameters.AddWithValue("@id", id);
insertCmd.Parameters.AddWithValue("@propId", propId);
insertCmd.ExecuteNonQuery();
}
}
}

// Trova nuove proprietà da aggiungere
var proprietaDaAggiungere = ProprietaId.Where(p => !proprietaAttuali.Contains(p)).ToList();
if (proprietaDaAggiungere.Any())
{
string insertQuery = "INSERT INTO anagraficaProprieta (anagraficaId, proprietaId) VALUES (@id, @propId)";
string insertPurchaseQuery = "INSERT INTO anagraficaproprietaacquistate (anagraficaId, proprietaId) VALUES (@id, @propId)";
foreach (int propId in proprietaDaAggiungere)
{
using (SqlCommand insertCmd = new SqlCommand(insertQuery, conn, transaction))
{
insertCmd.Parameters.AddWithValue("@id", id);
insertCmd.Parameters.AddWithValue("@propId", propId);
insertCmd.ExecuteNonQuery();
}
using (SqlCommand insertCmd = new SqlCommand(insertPurchaseQuery, conn, transaction))
{
insertCmd.Parameters.AddWithValue("@id", id);
insertCmd.Parameters.AddWithValue("@propId", propId);
insertCmd.ExecuteNonQuery();
}
}
}

transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
Console.WriteLine("Errore AggiornaUtente: " + ex.Message);
}
}
}
}

public int CreaUtente(string Cognome, string Nome, int ComuneId, int ProfessioniID, string Sesso, List ProprietaIds)
{
int nuovoId = -1;

using (SqlConnection conn = new SqlConnection(_connString))
{
try
{
conn.Open();
string query = @"
INSERT INTO Anagrafica (Cognome, Nome, ComuneId, Sesso, ProfessioniID)
OUTPUT INSERTED.Id
VALUES (@Cognome, @Nome, @ComuneId, @Sesso, @ProfessioniID)";

SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@Cognome", Cognome);
cmd.Parameters.AddWithValue("@Nome", Nome);
cmd.Parameters.AddWithValue("@ComuneId", ComuneId);
cmd.Parameters.AddWithValue("@Sesso", Sesso);
cmd.Parameters.AddWithValue("@ProfessioniID", ProfessioniID);

nuovoId = (int)cmd.ExecuteScalar();

// Se il nuovo utente è stato creato, assegniamo le proprietà
if (nuovoId > 0 && ProprietaIds != null && ProprietaIds.Count > 0)
{
foreach (int propId in ProprietaIds)
{
_proprietaService.AssegnaProprieta(nuovoId, propId);
}
}

// Dopo aver assegnato le proprietà, aggiorniamo la tabella aggregata
_proprietaService.AggiornaUvAnagraficaProprieta();
}
catch (Exception ex)
{
Console.WriteLine("Errore CreaUtente: " + ex.Message);
}
}
return nuovoId;
}
< /code>
Я хочу создать функцию JS, которая на щелчке на флажке It It Spot on UV_Anagrafica, и, когда я обновляю пользователя, оно публикует проверенное свойство на UV_AnagraficaproPrietaAcquistate. Если я обновляю пользователя, я снимаю некоторые свойства, функция должна публиковать их в UV_Anagraficaproprietavendute. Если я не ухожу с каким -либо имуществом, ценности Proprieta в UV_Anagrafica, UV_Anagraficaproprietavendute e uv_anagraficaproprietaacquistate, должен быть «nessuna». Пожалуйста, помогите мне!

Подробнее здесь: https://stackoverflow.com/questions/794 ... t-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»