нажмите на ребенка, чтобы получить его родителя - PullRequest
0 голосов
/ 11 июня 2018

У меня есть семейное древо, и в раскрывающемся списке также есть все имена родителей и дочерних элементов, внутри каждого дочернего элемента есть ссылка. Я хочу, чтобы при нажатии на любую дочернюю ссылку отображался его отец в раскрывающемся списке (установите этот флажок).Пожалуйста, кто-нибудь, помогите мне.

это функция для отображения ребенка

function getChild($family_tree,$parent){
        $list = "<ul style='list-style-type:none'>";
        foreach($family_tree[$parent] as $each_child){
            $list .= "<li>" . $each_child[0]."  "."<a style='text-decoration:none ; font-size: smaller' onclick='changeParent()' href='#'>".'Change parent'."</a>";
            if(isset($family_tree[$each_child[1]])){
                $list .= getChild($family_tree,$each_child[1]);
            }
            $list .= "</li>";
        }
        $list .= "</ul>";
        return $list;

        }

и эта функция для получения отца ребенка

 public function getParentId($childId)
 {
    $statment = $this->db->prepare("SELECT parent FROM `person` WHERE id = $childId");
    $statment->execute();
    $result = $statment->fetchAll();

    foreach($result as $output){

        return $output['parent'];

    }
 }

и это моя форма

<form method="post">
  Child Name: <input type ='text' name ='name' placeholder="Enter name here">
  <select name="parent" id="names" onchange="getSelectValueId()">
  <option>--Select Parent--</option>
  <option><?php echo $object->displayParent()?></option>
  </select>
    <br>
    <input type="submit" name="submit" value="Enter">
</form>

Обновление **** Теперь я получаю идентификатор ребенка, когда нажимаю на ссылку, и у меня есть функция, которая получает идентификатор родителя ... как яможете изменить выбранную сейчас опцию ??любой может помочь мне плз !!!!

эта функция получает идентификатор ребенка по ссылке

 function changeParent(){
      $(document).ready(function(){
        $("a").click(function() {
           function getEventTarget(e) {
        e = e || window.event;
        return e.target || e.srcElement;
        }

        var ul = document.getElementsByClassName('listSet');
        [].forEach.call(ul, function(el) {
        el.onclick = function(event) {
            var target = getEventTarget(event);
           alert(target.id);
        };
        });
      });
     });
    }
            

1 Ответ

0 голосов
/ 11 июня 2018

Я решил это :))) это ответ Но я решил это с помощью функции вызова, которая получает идентификатор родителя: /

function changeParent(){
      $(document).ready(function(){
        $("a").click(function() {
           function getEventTarget(e) {
        e = e || window.event;
        return e.target || e.srcElement;
        }

        var ul = document.getElementsByClassName('listSet');
        [].forEach.call(ul, function(el) {
        el.onclick = function(event) {
            var target = getEventTarget(event);
           //alert(target.id);
           document.getElementById('names').value=target.id; //This line to change selected option to parent of child clicked.
        };
        });
  }); 
 });      
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...