اذهب إلى المحتوى

السؤال

نشر

عند الكتابة فى حقل بحث  input type text   يتغير اتجاه الـ  select box  الموجودة فوقه فى نفس الصفحة  ثم تعود للحالة الاولى بمجرد حذف الكلمة المكتوبة..

عند الكتابة في حقل الادخال يتم ارسال كود اجاكس للمعلجة والعودة بنتائج البحث؛ وهذا هو كود الاجاكس:

 $("#input-search").on("keyup", function() {
  var search = $(this).val();
  var cont = $('.hidden-countryI').val();
  if ($(this).val().length > 0) {
    $.ajax({
      url: "showSearch.php",
      data: {
        sentSearch: search,
        country: cont
      },
      success: function(data) {
        $('.shown').html(data);
      }
    });
  } else {
    $('.shown').html('');
  }
});

 

Recommended Posts

  • 0
نشر
  بتاريخ On 16‏/6‏/2022 at 23:32 قال Adnane Kadri:

سؤالك يفتقر الى التفاصيل اكثر، هل يمكنك ارفاق شيفرة ال html أيضا.

هل يمكنك التقاط فيديو قصير او ارفاق مثال عملي عن السلوك الذي يحدث؟

أظهر المزيد  

مرفق فيديو قصير..المشكلة اتضحت لى وهى عند ارسال اتصال بالاجاكس يتم تشغيل ملف التنسيقات البديل(لغه انجليزية) فيتغير الاتجاه وتحدث المشكلة

select box & input problem.mp4Fetching info...

  بتاريخ On 17‏/6‏/2022 at 06:29 قال عمر قره محمد:

حسناً، هل يمكنك مشاركة ملفات الـ html والـ css الخاصة بالـ select box و الـ input حتى نستطيع المساعدة.

أظهر المزيد  

ملف HTML

<!--div with search box -->
<div class="div-search">
    <form  class="form-index" action="search.php" method="GET">
        <?php 
         $stmt=$conn->prepare(" SELECT * from categories ");
         $stmt->execute();
         $cats=$stmt->fetchAll();
         ?>
       <?php  $country=isset($_GET['d']) && is_numeric($_GET['d']) && $_GET['d']<=4 && $_GET['d']>0  ? intval($_GET['d']) : 1;?>
         <!--div search in index-->
        <!--start select box categories-->
         <select class="select-search-Cat" name="category" id="select-cat">
         <option value="0"> <?php echo $lang['allCategories']?> </option>
             <?php
              if (!empty($cats)){
               if($lang['lang']=='ar'){
                     foreach ($cats as  $cat) {
                     echo "<option value='".$cat['cat_id']."'>".$cat['nameAR']."</option>";
                     } 
                }elseif ($lang['lang']=='en') {
                    foreach ($cats as  $cat) {
                     echo "<option value='".$cat['cat_id']."'>".$cat['name']."</option>";
                     } 
                  } }
                ?>
        </select>
        <!--end select box categories-->
        <!--start select box sub-categories-->
         <select class="select-search-Sub" name="subCat" id="select-subcat">
         <option value="0"><?php echo $lang['allSubCats']?></option>

         </select>
         <!--end select box sub-categories-->
         <?php
         $l=isset($_GET['lang'])?$_GET['lang']:'ar';//to translate database words
         
           $stmt2=$conn->prepare(" SELECT state.*,country.* from state
         join country on country.country_id=state.country_id
         where country.country_id=? ");
         $stmt2->execute(array($country));
         $states=$stmt2->fetchAll();
          ?>
        <!--start input hidden & select box states-->
        
        <select class="select-search-State" name="state" id="select-state">
        <option value="0"><?php echo $lang['allstates']?></option>
            <?php if (!empty($states)){ 
            foreach ($states as  $state) {
             echo "<option value='".$state['state_id']."'>".$state['state_nameAR']."</option>";
             }
            }else{ 
             echo "<option>No search results</option>";
            }
            ?>
        </select>   
            <!--start input search & button-->
            <input type="hidden" name="country" value="<?php echo $country ?>">
            <input type="text" name="input-search" id="input-search" autocomplete="off" >
            <button class="btn btn-success btn-search-index" id="btn-search-index"><?php echo $lang['search']?></button>
        <div class="shown"></div>

        <!--end input search & button-->
    </form>
</div><!--end div with  search box-->

ملف تنسيقات 

#input-search,
.select-search-Cat,.select-search-Sub,.select-search-State{
    height: 14vh;
    width: 28.5vw;
    font-family: sans-serif;
    border: 4px solid #21dedb;
    background-color: #f7f9f9;
    font-size: 1.7vw;
    font-weight: 500;
    color: #7e7e7b;
    border-radius: 5px;
}

.select-search-Cat option,.select-search-Sub option,.select-search-State option{
    background: #d0ede4;
}

.select-search-Cat option:hover,.select-search-Sub option:hover,
.select-search-State option:hover{
    background: #2dad85;
}

#input-search{
    height: 12vh;
    width: 68.5vw;
    display: block;
    margin: 11px auto;
    padding-right: 10px;
    font-size: 17px;
}

.select-search-Cat{
     margin-right: 5vw;
     margin-left: 0vw;
}

 

  • 0
نشر
  بتاريخ On 17‏/6‏/2022 at 19:24 قال Our World عالمنا:

مرفق فيديو قصير..المشكلة اتضحت لى وهى عند ارسال اتصال بالاجاكس يتم تشغيل ملف التنسيقات البديل(لغه انجليزية) فيتغير الاتجاه وتحدث المشكلة

select box & input problem.mp4Fetching info...

أظهر المزيد  

كيف تتعرف على اللغة و تبدل بين التنسيقات؟

حاول ضبط الإتجاه بالشكل التالي:

success: function(data) {
  $('.shown').html(data);
  $('.shown').attr("dir", "rtl");
}

 

  • 0
نشر

 

  بتاريخ On 17‏/6‏/2022 at 20:04 قال Wael Aljamal:

كيف تتعرف على اللغة و تبدل بين التنسيقات؟

حاول ضبط الإتجاه بالشكل التالي:

success: function(data) {
  $('.shown').html(data);
  $('.shown').attr("dir", "rtl");
}

 

أظهر المزيد  

يوجد لينك بأعلى الـ navbar بالضغط عليه يتم التبديل بين اللغتين

هذا هو كود التبديل بين اللغتين

<div>
  <!-- AR | EN  -->
  <a href="?lang=ar">AR</a>
  <a href="?lang=en">EN</a>
</div>

هذه صفحة php  يتم فيها معالجة  $_GET['lang']



<?php
if(isset($_GET['lang'])){
$lang = $_GET['lang'];
$_SESSION['lang'] = $lang;

}elseif(isset($_SESSION['lang'])){
$lang = $_SESSION['lang'];

}else{
$lang = 'ar';
}

switch ($lang) {
case 'en':
$lang_file = 'english.php';
$style_file = 'en.css';
break;

case 'ar':
$lang_file = 'arabic.php';
$style_file = 'ar.css';
break;

default:
$lang_file = 'arabic.php';
$style_file = 'ar.css';

}


include 'include/languages/'.$lang_file;
?>


هذه صفحة الـ header للتبديل بين ملفات التنسيق

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>
      <?php echo $title;?>
    </title>
    <!-- site logo -->
    <link rel="shortcut icon" href="layout/images/favicon.ico"  />
    <!--bootstrap-->
    <link rel="stylesheet" type="text/css" href="<?php echo $css;?>bootstrap.min.css">
    <!--fontawesome-->
    <link rel="stylesheet" type="text/css" href="<?php echo $css;?>all.min.css">
    <!--css-->
    <link rel="stylesheet" type="text/css" href="layout/css/ar.css">
    <link rel="stylesheet" type="text/css" href="layout/css/<?php echo $lang['lang'];?>.css"><!--echo $lang['en']OR echo $lang['ar']--> 
  </head>
  <body class="body">

 

  بتاريخ On 18‏/6‏/2022 at 14:35 قال Our World عالمنا:

success: function(data) { $('.shown').html(data); $('.shown').attr("dir", "rtl"); }

أظهر المزيد  

هذا الحل لم ينجح

  • 0
نشر
  بتاريخ On 18‏/6‏/2022 at 14:35 قال Our World عالمنا:

هذا الحل لم ينجح

أظهر المزيد  

لاحظت أن المشكلة عند استلام نتيجة الطلب، لربما تنسيق الرد غير مهيكل بطريقة صحيحة ما يؤدي لوجود وسم مفتوح وغير مغلق، مما يؤدي لأن العناصر التالية تتغير هرمية وراثتها أو يتغير الأب لها، فلا يعود التنسيق يعمل بشكل جيد.

حاول فتح أدوات المطورين بالضغط على F12 ثم تتبع التغيرات في الصفحة، كما يمكنك عرض محتوى الصفحة أثناء حدوث الخطأ و تفقد التغييرات فيها.

اعمل view page resource أو inspect و راقب التغيرات و أخبرنا بما يحصل

  • 0
نشر
  بتاريخ On 18‏/6‏/2022 at 14:45 قال Wael Aljamal:

لاحظت أن المشكلة عند استلام نتيجة الطلب، لربما تنسيق الرد غير مهيكل بطريقة صحيحة ما يؤدي لوجود وسم مفتوح وغير مغلق، مما يؤدي لأن العناصر التالية تتغير هرمية وراثتها أو يتغير الأب لها، فلا يعود التنسيق يعمل بشكل جيد.

حاول فتح أدوات المطورين بالضغط على F12 ثم تتبع التغيرات في الصفحة، كما يمكنك عرض محتوى الصفحة أثناء حدوث الخطأ و تفقد التغييرات فيها.

اعمل view page resource أو inspect و راقب التغيرات و أخبرنا بما يحصل

أظهر المزيد  

اثناء حدوث الخطأ يتم تشغيل ملف تنسيق اللغة الانجليزية لذلك يتغير الاتجاه

  • 0
نشر
  بتاريخ On 18‏/6‏/2022 at 14:55 قال Our World عالمنا:

اثناء حدوث الخطأ يتم تشغيل ملف تنسيق اللغة الانجليزية لذلك يتغير الاتجاه

أظهر المزيد  

هل تقوم بتحميل التنسيق العربي بشكل افتراضي؟

 <!--css-->
    <link rel="stylesheet" type="text/css" href="layout/css/ar.css">
    <link rel="stylesheet" type="text/css" href="layout/css/<?php echo $lang['lang'];?>.css">

<!--echo $lang['en']OR echo $lang['ar']--> 

حاول طباعة جميع المتغيرات في صفحة PHP التي تستجيب لطلب ajax وتأكد من قيمهم..

وهل نفس الصفحة الحالية هي من تعالج نتيجة البحث؟

  • 0
نشر
  بتاريخ On 18‏/6‏/2022 at 14:45 قال Wael Aljamal:

لاحظت أن المشكلة عند استلام نتيجة الطلب، لربما تنسيق الرد غير مهيكل بطريقة صحيحة ما يؤدي لوجود وسم مفتوح وغير مغلق، مما يؤدي لأن العناصر التالية تتغير هرمية وراثتها أو يتغير الأب لها، فلا يعود التنسيق يعمل بشكل جيد.

حاول فتح أدوات المطورين بالضغط على F12 ثم تتبع التغيرات في الصفحة، كما يمكنك عرض محتوى الصفحة أثناء حدوث الخطأ و تفقد التغييرات فيها.

اعمل view page resource أو inspect و راقب التغيرات و أخبرنا بما يحصل

أظهر المزيد  

قبل المشكلة (ملف تنسيق العربي)

body {

background-color: #F7F6F6;

direction: rtl;

}

بعد المشكلة (ملف الانجليزي)

body {

background-color: #F7F6F6;

direction: ltr;

}

 

  بتاريخ On 18‏/6‏/2022 at 15:00 قال Wael Aljamal:

هل تقوم بتحميل التنسيق العربي بشكل افتراضي؟

 <!--css-->
    <link rel="stylesheet" type="text/css" href="layout/css/ar.css">
    <link rel="stylesheet" type="text/css" href="layout/css/<?php echo $lang['lang'];?>.css">

<!--echo $lang['en']OR echo $lang['ar']--> 

حاول طباعة جميع المتغيرات في صفحة PHP التي تستجيب لطلب ajax وتأكد من قيمهم..

وهل نفس الصفحة الحالية هي من تعالج نتيجة البحث؟

أظهر المزيد  

انا عرضت صفحة الـ header وبها ملفى التنسيق (عربي وانجليزي) هكذا

<!--css--> <link rel="stylesheet" type="text/css" href="layout/css/ar.css"> <link rel="stylesheet" type="text/css" href="layout/css/<?php echo $lang['lang'];?>.css"> <!--echo $lang['en']OR echo $lang['ar']-->

والتبديل تلقائي استجابة لما يحمله المتغير  $lang['lang']

  • 0
نشر
  بتاريخ On 18‏/6‏/2022 at 15:00 قال Our World عالمنا:

قبل المشكلة (ملف تنسيق العربي)

أظهر المزيد  

المتغير $lang يحمل سلسلة نصية تعبر عن اللغة/ لماذا تجلب القيمة وتعامله كمصفوفة 

<?php echo $lang['lang'];?>
           ^^^^^^^^^^^^

<?php echo $lang;?>

*********

أي أن اللغة تتبدل أثناء المعالجة، لسبب تحميل الصفحة من جديد.

يمكنك إسناد اتجاه الصفحة من PHP  و HTML

<html dir="rtl" lang="ar">

  =>
  
<html dir="<?= $lang == 'ar' ? 'rtl':'ltr' ?>" lang="<?= $lang ?>">

 

  • 0
نشر
  بتاريخ On 18‏/6‏/2022 at 15:07 قال Wael Aljamal:

المتغير $lang يحمل سلسلة نصية تعبر عن اللغة/ لماذا تجلب القيمة وتعامله كمصفوفة 

<?php echo $lang['lang'];?>
           ^^^^^^^^^^^^

<?php echo $lang;?>

*********

أي أن اللغة تتبدل أثناء المعالجة، لسبب تحميل الصفحة من جديد.

يمكنك إسناد اتجاه الصفحة من PHP  و HTML

<html dir="rtl" lang="ar">

  =>
  
<html dir="<?= $lang == 'ar' ? 'rtl':'ltr' ?>" lang="<?= $lang ?>">

 

أظهر المزيد  

جربت السابق ووضعته فى صفحة الـ header  هكذا

<!DOCTYPE html>
<html dir="<?php $lang=='ar'?'rtl':'ltr' ?>" lang="<?php $lang ?>">
<head>
    <meta charset="utf-8">
    <title>
        <?php echo $title;?>
    </title>
     <!-- site logo -->
    <link rel="shortcut icon" href="layout/images/favicon.ico"  />
    <!--bootstrap-->
    <link rel="stylesheet" type="text/css" href="<?php echo $css;?>bootstrap.min.css">
    <!--fontawesome-->
    <link rel="stylesheet" type="text/css" href="<?php echo $css;?>all.min.css">
    <!--css-->
    <link rel="stylesheet" type="text/css" href="layout/css/ar.css">
    <link rel="stylesheet" type="text/css" href="layout/css/<?php echo $lang['lang'];?>.css"><!--echo $lang['en']OR echo $lang['ar']--> 
</head>
<body class="body">


والمشكلة كما هى لم تحل

  بتاريخ On 18‏/6‏/2022 at 15:07 قال Wael Aljamal:

المتغير $lang يحمل سلسلة نصية تعبر عن اللغة/ لماذا تجلب القيمة وتعامله كمصفوفة 

<?php echo $lang['lang'];?>
           ^^^^^^^^^^^^

<?php echo $lang;?>

*********

أي أن اللغة تتبدل أثناء المعالجة، لسبب تحميل الصفحة من جديد.

يمكنك إسناد اتجاه الصفحة من PHP  و HTML

<html dir="rtl" lang="ar">

  =>
  
<html dir="<?= $lang == 'ar' ? 'rtl':'ltr' ?>" lang="<?= $lang ?>">

 

أظهر المزيد  

لاحظ ان اللغه لا تتبدل ولكن التنسيق فقط هو الذي يتبدل.. أنا طبعت 

<?php echo 'language='.$lang['lang']; ?>

قبل وبعد حدوث المشكلة؛ قيمته ثابته لا تتغير الذي يتغير فقط هو التنسيق من عربي الى انجليزي 

  • 0
نشر
  بتاريخ On 18‏/6‏/2022 at 15:18 قال Our World عالمنا:

قبل وبعد حدوث المشكلة؛ قيمته ثابته لا تتغير الذي يتغير فقط هو التنسيق من عربي الى انجليزي 

أظهر المزيد  

حسناً، لنفصل الصفحة الخلفية مؤقتاً و نعيد نتيجة ثابتة

$('.shown').html("Hello");

أو

$('.shown').html("مرحبا");

جرب كل مرة سطر مختلف بدل القيمة الحقيقة، لنعرف سبب المشكلة

  • 0
نشر
  بتاريخ On 18‏/6‏/2022 at 15:30 قال Wael Aljamal:

حسناً، لنفصل الصفحة الخلفية مؤقتاً و نعيد نتيجة ثابتة

$('.shown').html("Hello");

أو

$('.shown').html("مرحبا");

جرب كل مرة سطر مختلف بدل القيمة الحقيقة، لنعرف سبب المشكلة

أظهر المزيد  

جربت مرحبا مرة و hello  مرة ثانية ولم تحدث المشكلة.. المشكلة تحدث فقط مع مجيء البيانات (data) من الصفحة الخلفية

  • 0
نشر
  بتاريخ On 18‏/6‏/2022 at 15:52 قال Wael Aljamal:

ممكن تعرض data في console لنتاكد من ماهيتها

أظهر المزيد  

اشكرك اخى الفاضل تداركت الخطأ وتم حل المشكلة..

فى صفحة المعالجة لم ارفق المتغير 

$lang['lang']

 انما ارفقت الملفات القديمة الانجليزية والعربية  

شكرا حسوب

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...