سؤال

كما سترون، أنا مبتدئ في كل هذه الأشياء المتعلقة بـ ajax ولكن يمكنني القيام ببعض أعمال php ولذا فقد طلبت من xajax أن يعتني بجافا سكريبت من أجلي.

لقد حصلت على مجموعة من العناصر المدرجة في قسم مختلف.أريد استخدام هذه المصفوفة لإنتاج قائمة غير مرتبة تتوسع عندما ينقر شخص ما على قسم ما.

لقد قمت بتعديل النص الذي وجدته هنا:

السحب المنزلق

يبدو البرنامج النصي الخاص بي حاليًا كما يلي:

<?php

include ("xajax_core/xajax.inc.php");

$subs =     array(
        "Mortice" => array("Union Deadlock 2.5", "Union Deadlock 3",      "Union Sashlock 2.5", "Union Sashlock 3"),
        "Cylinders" => array("30/30 Euro", "30/40 Euro", "30/50 Euro", "30/60 Euro"),
        "uPVC" => array("30/92 Fullex", "35/92 Fullex", "Sash jammer")
        );

function addsub($show, $key)
{

$objResponse=new xajaxResponse();

if ($show=="true") {
    $objResponse->assign("list", "style.display", "block");
    $objResponse->replace("$key","innerHTML","true","false");
}
else {
    $objResponse->assign("list", "style.display", "none");
    $objResponse->replace("$key","innerHTML","false","true");
}

return $objResponse;
}

$xajax = new xajax();
$xajax->registerFunction("addsub");
$xajax->processRequest();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php $xajax->printJavascript() ?>
<title>Expand menu test</title>
<style type="text/css">

.list {display: none;}

</style>
</head>

<body>

<?php
echo "<ul>\n";

foreach ($subs as $key => $group) {
echo "<li id=\"".$key."\" onClick=\"xajax_addsub('true','$key');\">".$key."\n";
echo "<ul class=\"list\" id=\"list\">\n";
    while (list($list, $each) = each($group)) {
        echo "<li id=\"list\">".$each."</li>\n";
        }
    echo "</ul>\n</li>\n";
}

echo "</ul>";


?>




</body>
</html>

الفكرة هي أنه عند النقر فوق عنصر ما، فإنه يغير نمط العرض إلى الحظر (وبالتالي يظهر بقية القائمة) ويضبط الوظيفة على "خطأ" لذا إذا تم النقر عليها مرة أخرى فسوف يتغير العرض مرة أخرى إلى لا شيء ويخفي قائمة.

وغني عن القول أن الأمر لا ينجح، لذا إذا كان بإمكان أي شخص أن يشير لي لماذا سأكون ممتنًا إلى الأبد.

هتافات،

نيك.

تم الحل - لقد قمت بفرزها عن طريق وضع القوائم المراد إظهارها (أو إخفائها) فيها <divs> وتعيين معرف فريد لكل منهم وتعيين نمطهم كعرض:لا أحد.ثم كان عليّ فقط تقديم طلب لتعيين النمط ككتلة عند النقر عليه.

شكرًا.

هل كانت مفيدة؟

المحلول

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

حظ سعيد!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top