PDA

View Full Version : عدم کارکرد پروژه autoComplete با زبان فارسی



hamidhassas
سه شنبه 27 اسفند 1392, 10:21 صبح
من یک پروژه دارم که وقتی کاربر در یک تکسباکس شروع به تایپ اسم شخصی میکنه به صورت هم زمان در دیتابیس جستجو میشه و نام تمامی کاربرانی که در اون هست به نمایش در میاد.
مشکل اینجاست که وقتی نام شخط رو با حروف لاتین مینویسم پروژه درست عمل میکنه و نام اشخاص لیست میشه ولی با حروف فارسی عمل نمیکنه

کل پروژه رو برا دانلود گزاشتم

http://hassas-computer.com/download/script_code/autoComplete_hassas-computer.com.rar

پسورد: www.hassas-computer.com (http://www.hassas-computer.com)


مشکلم حل شد کد رو به صورت زیر تغییر دادم و در صحفه index.php متغیر رو با GET گرفتم و بعد در تکس باکس ها صدا زدم



< li onClick="fill(\''.$result->value.'\');"><a href="index.php?user='.$result->id.'">'.$result->value.'</a></li>

hamedarian2009
سه شنبه 27 اسفند 1392, 11:30 صبح
سلام شما باید بعد از دستور انتخاب دیتابیس دستور زیر را هم قرار بدین
یعنی به این صورت :


$db = new mysqli('localhost', 'root' ,'', 'user');
$db->query('set names utf8');

hamidhassas
سه شنبه 27 اسفند 1392, 13:55 عصر
ممنون از کمکتون
یک سوال دیگه دارم چطور میتونم کاری کنم وقتی که اسم یک کاربر رو نوشتو و در جستجو نمایش داده شد با کلیک بر روی آن اطلاعات اون کاربر به صورت خودکار وارد تکس باکس هایی چون نام و نام خانوادگی ، تلفن ، آدرس و غیره بشه

MMSHFE
سه شنبه 27 اسفند 1392, 15:21 عصر
توی رویداد change یا click مربوط به اون عنصر باید با AJAX اطلاعات مربوطه رو از سرور بگیرین و توی المنتهای موردنظر از فرم قرار بدین.

hamidhassas
سه شنبه 27 اسفند 1392, 15:28 عصر
توی رویداد change یا click مربوط به اون عنصر باید با AJAX اطلاعات مربوطه رو از سرور بگیرین و توی المنتهای موردنظر از فرم قرار بدین.

میشه عملی نشونم بدید بلد نیستم چکار کنم

این اصل کد من

نام فیلد های موجود در جدول دیتابیس
Name_Family
Tel_Number
User_Address

کد فایل search.php



$db = new mysqli('localhost', 'root' ,'', 'user');
$db->query('SET NAMES \'utf8\'');
if(!$db) {
echo 'ERROR: Could not connect to the database.';
} else {
if(isset($_POST['queryString'])) {
$queryString = $db->real_escape_string($_POST['queryString']);
if(strlen($queryString) >0) {
$query = $db->query("SELECT name_family FROM customer_profile WHERE name_family LIKE '$queryString%' LIMIT 10");
if($query) {
while ($result = $query ->fetch_object())
{
echo '<li onClick="fill(\''.$result->name_family.'\');">'.$result->name_family.'</li>';
}
} else {
echo 'ERROR: There was a problem with the query.';
}
} else {
}
} else {
echo 'There should be no direct access to this script!';
}
}


کد فایل index.php


<script type="text/javascript" src="jquery-1.2.1.pack.js"></script>
<script type="text/javascript">
function lookup(inputString) {
if(inputString.length == 0) {
// Hide the suggestion box.
$('#suggestions').hide();
} else {
$.post("search.php", {queryString: ""+inputString+""}, function(data){
if(data.length >0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}
});
}
} // lookup

function fill(thisValue) {
$('#inputString').val(thisValue);
setTimeout("$('#suggestions').hide();", 200);
}
</script>


<style type="text/css">
body {
font-family: Helvetica;
font-size: 11px;
color: #000;
}

h3 {
margin: 0px;
padding: 0px;
}
.suggestionsBox {
position: relative;
left: 30px;
margin: 10px 0px 0px 0px;
width: 200px;
background-color: #212427;
-moz-border-radius: 7px;
-webkit-border-radius: 7px;
border: 2px solid #000;
color: #fff;
}

.suggestionList {
margin: 0px;
padding: 0px;
}

.suggestionList li {

margin: 0px 0px 3px 0px;
padding: 3px;
cursor: pointer;
}

.suggestionList li:hover {
background-color: #659CD8;
}
</style>


<form>
<div>
نام و نام خانوادگی:
<br />
<input type="NAME" size="30" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
</div>

<div class="suggestionsBox" id="suggestions" style="display: none;">
<img src="upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
<div class="suggestionList" id="autoSuggestionsList">
&nbsp;
</div>
</div>
<BR />
<div>
تلفن:
<br />
<input type="TEL" size="30" value="" />
</div>

<div>
آدرس:
<br />
<input type="ADDRESS" size="30" value="" />
</div>
</form>

MMSHFE
سه شنبه 27 اسفند 1392, 15:36 عصر
مثال با jQuery :

$("#user").change(function() {
$.ajax({
type: "post",
url: "userinfo.php",
data: "id="+$(this).val(),
success: function(result) {
var userInfo = result.split(",");
$("#name").val(userInfo[0]);
$("#family").val(userInfo[1]);
$("#age").val(userInfo[2]);
}
}
}

hamidhassas
سه شنبه 27 اسفند 1392, 15:44 عصر
مثال با jQuery :

$("#user").change(function() {
$.ajax({
type: "post",
url: "userinfo.php",
data: "id="+$(this).val(),
success: function(result) {
var userInfo = result.split(",");
$("#name").val(userInfo[0]);
$("#family").val(userInfo[1]);
$("#age").val(userInfo[2]);
}
}
}

میشه درمودش توضیح بدین که این کد چطوریه و داره چه اتفایی می یوفته

MMSHFE
سه شنبه 27 اسفند 1392, 21:05 عصر
راستش این تالار ربطی به JS و jQuery نداره که بخوایم بیشتر از این درگیر مباحث jQuery بشیم اما در کل این تابع داره وقتی محتوای یک عنصر با "id="user تغییر کرد، صفحه userinfo.php رو از سرور درخواست میکنه و مقدار اون عنصر رو بعنوان id با روش Post براش میفرسته و هرچی جواب از اون صفحه بیاد با کارکتر , میشکنه و تبدیل به آرای میکنه و به ترتیب توی عناصر با id های name و family و age قرار میده.

hamidhassas
سه شنبه 27 اسفند 1392, 23:10 عصر
مشکلم حل شد کد رو به صورت زیر تغییر دادم و در صحفه index.php متغیر رو با GET گرفتم و بعد در تکس باکس ها صدا زدم



< li onClick="fill(\''.$result->name_family.'\');"><a href="index.php?user='.$result->user_id.'">'.$result->name_family.'</a></li>