Форма с ajax..

proba

Registered
Здравейте.
Имам една форма примерно следната:

<form method="POST">
Дума: <input type="text" name="duma" size="50"><br>
<input type="image" src="бутон.PNG" value="Търси!">
</form>

Когато се натисне бутона се изпълнява примерно този код:

$duma = htmlspecialchars($_POST['duma']);
mysql_query("SELECT * FROM dumi WHERE duma='$duma'") or die(mysql_error());

Как да стане с ajax , когато натисна бутона , да се изпълнява кода отдолу , но без да се рефрешва страницата.
И автоматично написаното в input полето да изчезва.
Идей? ;)
 
form.php
Код:
<html>
<head>
<script type="text/javascript">
var xmlhttp=null;
function ba4kai()
{
	str = document.getElementById("txt1").value;
	
if (str.length==0) { 
  	document.getElementById("txtHint").innerHTML="";
  	return;
}

if (window.XMLHttpRequest) {
  	xmlhttp=new XMLHttpRequest();
} else {
  	xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var url="php.php?id=" + str;
url=url+"&sid="+Math.random();
xmlhttp.open("GET",url,false);
xmlhttp.send(null);
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
document.getElementById("txt1").value = "";
}
</script> 
</head>

<body>
Duma: <input type="text" id="txt1">
<input type="button" name="submit" value="submit"  onclick="ba4kai()">
<p>rezultat: <span id="txtHint"></span></p>
</body>

</html>


php.php
Код:
<?

$duma = htmlspecialchars($_GET['id']);
//mysql_query("SELECT * FROM dumi WHERE duma='$duma'") or die(mysql_error()); 
echo "$duma";

?>

ba4kai() може да го ползваш и с различните ивънти на обектите
<form> не ти трябва
Забележи, че се работи с get а не post
също може да имаш проблем с енкодинга ако не работиш с utf но и затова си има чалъми


успех!
 
а за проблема с енкодинга си написах следнaта функция


Код:
function convert_localeC($text) {
  $text = iconv('cp1251', 'UTF-8', $text);
  return preg_replace("/([\xC2\xC4])([\x80-\xBF])/e",  "chr(ord('\\1')<<6&0xC0|ord('\\2')&0x3F)", $text);
}

и когато искам да изкарам съдържание от ajax в страница с енкодинг windows-1251 я викам по следния начин

Код:
 $text  = convert_localeC($text);
или
Код:
 <?=convert_localeC($text)?>

Забележете също, името на функцията
ако обърнем в iconv локейлите получаваме и обратната страна

Код:
function convert_localeU($text) {
  $text = iconv('UTF-8', 'cp1251', $text);
  return preg_replace("/([\xC2\xC4])([\x80-\xBF])/e",  "chr(ord('\\1')<<6&0xC0|ord('\\2')&0x3F)", $text);
}

от cp-1251 към utf-8

успех!
 

Back
Горе