Diciamo che detto così non è proprio corretto ma il risultato è proprio quello :-)Originariamente inviato da Feder
E' possibile far partire una funzione php da Ajax?
ti posto un esmpio (preso da un libro) che fa proprio quello che vuoi te (manca la parte sql ma la puoi integrare te quella)
file Ajax1.js
come vedi questo non fa altro che fare una get al file Ajax1.php, ma questò verrà effettuato in modo asincronoCodice PHP:var request = false;
if (navigator.appName == "Microsoft Internet Explorer") {
request = new ActiveXObject("Microsoft.XMLHTTP");
} else {
request = new XMLHttpRequest();
}
function check(name)
{
request.abort();
request.open("GET", "Ajax1.php?name=" + name, true);
request.onreadystatechange=function() {
if (request.readyState == 4) {
document.getElementById('message').innerHTML = request.responseText;
}
}
request.send(null);
}
file Ajax1.php
Come vedi c'è un vettore di usr gia inserite invece della ricerca nel db, ma questo si può adattare facilmenteCodice PHP:<?php
function checkUsername($username) {
$existingUsers = array('rasmus', 'zeev', 'andi');
// empty check
if ($username == '') {
return '';
} elseif (strlen($username) < 4) {
return '<span class="error">
Username is less than 4 characters
</span>';
} elseif (in_array($username, $existingUsers)) {
return '<span class="error">
Username already exists
</span>';
} else {
return '<span class="ok">
Username is acceptable
</span>';
}
}
if(!class_exists('PHPUnit_Framework_TestCase')) {
$name = isset($_GET['name']) ? $_GET['name'] : '';
echo checkUsername(trim($name));
}
ed infine il file Ajax1.html
fatti questi 3 file poi apri Ajax1.html e guarda il risultatoCodice PHP:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Simple Ajax Example</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<style>
.ok {color: green;}
.error {color: red;}
</style>
<script type="text/javascript" src="Ajax1.js"></script>
</head>
<body>
<h1>Registration:</h1>
<form action="#">
<div>
<label for="name">Username:</label>
<input id="name" name="name" type="text" onkeyup="check(this.value)" />
<div id="message"></div>
</div>
</form>
</body>
</html>
![]()
![]()

Rispondi quotando