domanda stupida o intelligente ????
Salve a tutti,
In molti esempi che trattano la sincronizzazione dati e quidi la sua verifica in tempo reale, ho notato che metteono sempre delle finestrelle di alert. Mi chiedevo ma a posto di alert è possibile mettere a fianco del campo ad esempio se è vuoto o se è compilato bene una semplicissima scritta ?????
Questo è uno di quegli esempi che ho pescato qui all'interno del forum:
Codice PHP:
<script type="text/javascript">
function formValid() {
if (document.forms["nameForm"].textname.value.length == 0) {
alert("Il campo NOME non e` stato completato");
return false;
} else if (document.forms["surnameForm"].textname.value.length == 0) {
alert("Il campo COGNOME non e` stato completato");
return false;
} else {
alert("I campi sono tutti completati"); //intendo questo
return true;
}
}
</script>
Mi potreste illuminare ???? Grazie.
domanda stupida o intelligente ????
Tanto per tenerti informato ho eseguito con la modifica alla chiamata ajax, ovviamente devo cambiar eil file interessato con il mio. Ecco quello che ho combinato. Correggimi se sbaglio:
Codice PHP:
<script type="text/javascript">
* AJAX = Asynchronous JavaScript and XML */
function loadXMLDoc(id)
{
/* questa prima parte della funzione apre la comunicazione con il server in background , senza dover riaggiornare la pagina */
var xmlhttp;
if (window.XMLHttpRequest)
{// codice per le nuove versioni di browser che hanno XMLHttpRequest integrato IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// codice per le vecchie versioni di browser IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
/* qui catturiamo l'evento di quando il readyState cambia */
/* 0: richiesta non inizializzata */
/* 1: connessione con il server attivata */
/* 2: il server ha ricevuto la richiesta */
/* 3: il server sta eseguendo la richiesta [query] */
/* 4: il server ha finito e la risposta e' pronta ! */
/* mentre lo STATUS e' lo stato della pagina , cioe' : 200: "OK" 404: Page not found */
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
/* qui si inserisce la risposta dal server (quindi l'informazione che abbiamo chiesto al nostro file php */
/* di prendere dal DataBase , e la si passa al nostro elemento (in questo caso un div) */
/* da notare che abbiamo richiesto una stringa come risposta , questo perche' non stiamo usando un file XML */
/* altrimenti avremmo dovuto usare responseXML */
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
/* qui apri il file dettaglio.php a cui passi la richiesta id e imposti il parametro asincrono=true */
/* l'importanza di avere una comunicazione asincrona e' che JS non deve aspettare la risposta del server */
/* ma puo' continuare ad eseguire il codice ed eventualmente a ritardare la risposta in attesa del server */
/* in questo modo non si creano "colli di bottiglia" , ovvero rallentamenti dovuti a lunghe attese */
/* chiaramente se si imposta asincrono=false (quindi sincrono) JS fermera' l'esecuzione del codice fino a */
/* quando il server non gli avra' fornito la risposta .. */
xmlhttp.open("GET","checkdati.php?ID="+id,true);
xmlhttp.send();
/* da notare che AJAX puo' usare sia ASP che PHP */
}
Questa l'ho sostituita con quella precedente che ti ho postato. giusto o sbagliato ????
domanda stupida o intelligente ????
Ciao NLSweb,
Allora oggi finalmente mi ci sono messo un po' a capire come funziona ma senza avere un buon risultato purtroppo. Questo quanto consigliato da te. Ho provato il tuo codice ma sembra che non mi funzioni (ovviamente a posto della città ho messo il cognome quindi l'ho adattato alle mie esigenze).
iscrizione.php:
Codice PHP:
<html>
<head>
<meta charset="UTF-8">
<title>Iscrizione</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#controllo").hide();
$("input").change(function(){
controlla();
});
});
function controlla(){
var valore = $("input").val();
loadXMLDoc(valore);
}
function loadXMLDoc(id)
{
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var risposta = xmlhttp.responseText;
risposta = risposta.substr(1, risposta.length-2);
if (risposta=="VERO"){
$("#controllo img").attr("src","available.png");
}else{
$("#controllo img").attr("src","not-available.png");
}
$("#controllo").show();
}
}
xmlhttp.open("GET","checkdati.php?ID="+id,true);
xmlhttp.send();
* AJAX = Asynchronous JavaScript and XML */
function loadXMLDoc(id)
{
/* questa prima parte della funzione apre la comunicazione con il server in background , senza dover riaggiornare la pagina */
var xmlhttp;
if (window.XMLHttpRequest)
{// codice per le nuove versioni di browser che hanno XMLHttpRequest integrato IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// codice per le vecchie versioni di browser IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
/* qui catturiamo l'evento di quando il readyState cambia */
/* 0: richiesta non inizializzata */
/* 1: connessione con il server attivata */
/* 2: il server ha ricevuto la richiesta */
/* 3: il server sta eseguendo la richiesta [query] */
/* 4: il server ha finito e la risposta e' pronta ! */
/* mentre lo STATUS e' lo stato della pagina , cioe' : 200: "OK" 404: Page not found */
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
/* qui si inserisce la risposta dal server (quindi l'informazione che abbiamo chiesto al nostro file php */
/* di prendere dal DataBase , e la si passa al nostro elemento (in questo caso un div) */
/* da notare che abbiamo richiesto una stringa come risposta , questo perche' non stiamo usando un file XML */
/* altrimenti avremmo dovuto usare responseXML */
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
/* qui apri il file dettaglio.php a cui passi la richiesta id e imposti il parametro asincrono=true */
/* l'importanza di avere una comunicazione asincrona e' che JS non deve aspettare la risposta del server */
/* ma puo' continuare ad eseguire il codice ed eventualmente a ritardare la risposta in attesa del server */
/* in questo modo non si creano "colli di bottiglia" , ovvero rallentamenti dovuti a lunghe attese */
/* chiaramente se si imposta asincrono=false (quindi sincrono) JS fermera' l'esecuzione del codice fino a */
/* quando il server non gli avra' fornito la risposta .. */
xmlhttp.open("GET","checkdati.php?ID="+id,true);
xmlhttp.send();
/* da notare che AJAX puo' usare sia ASP che PHP */
}
</script>
<style type="text/css">
#Data{
position:absolute;
top:0px;
left:10px;
left:20px;
}
#Titolo{
position:absolute;
top:0px;
left:395px;
width: 350px;
font-size:100%;
}
hr {
position:absolute;
top: 50px;
width: 1055px;
color: #0000ff;
}
div {
position:absolute;
top: 72px;
}
footer{
bottom:0px;
height:100px;
position:absolute;
text-align:center;
width:1000px;
}
table{
border:1px solid black;
}
</style>
</head>
<body>
<header>
<div id="Titolo"><h2>Prova inserimento campi</h2> </div>
<hr>
</header>
<footer>
<div id="footer">
La pagina è stata creata by Fabio xxx. Tutti i diritti riservati.
Ogni parte o contenuto di essa se ricopiati o riportati in altre pagine
senza previaviso e autorizzazione dell'autore, saranno puniti a norma di legge.
</div>
</footer>
<!-- inizio inserimento campi per processarli con ajax -->
<form action="checkdate.php" method="post" id="contatti">
<div>
<label for="cognome">Cognome: <input type ="text" id="cognome" name="cognome" change="input" maxlenght ="15" ></label>
<p>
</div> </form
<?php
include_once("connettimysqli.php");
include_once("data.php");
?>
</body>
</html>
E questa è la parte relativa al controllo al db. considera che ho un file che raccoglie la connessione mysqli e che ha come variabile $con.
questo si chiama checkdati.php
Codice PHP:
<?php
require_once("connettimysqli");
$ID = $_GET['ID'];
$query = "SELECT * FROM uty WHERE `campo`=\"".$ID."\"";
$result = mysqli_query($con,$query) or die(mysql_error());
while($row = mysqli_fetch_array($result)) {
$risultato = $row['campo'];
}
if($risultato===$ID){
echo "VERO";
}else{
echo "FALSO";
}
mysqli_close($con);
?>
Spero insieme a te di capire dove sta l'errore. Grazie.