2012-06-06 2 views
1

저는 PHP로 시작 했으므로 PHP로 jQuery 아약스를 옮기려고합니다. 여기 PHP를 자바 스크립트로 옮기기

<?php 
include 'config.php'; 
include 'opendb.php'; 

$query = "SELECT * FROM agency ORDER BY name"; 
$result = mysql_query($query); 
while($row = mysql_fetch_assoc($result)){ 
$id = $row['id']; 
$name = $row['name']; 
echo "<li class=\"agency\"><a href=\"contentAgency.php?id=$id\">$name</a><ul class=\"agency-sub\"></ul></li>"; 
} 

include 'closedb.php'; 
?> 

내 현재 JS 기능입니다 : 여기 내 PHP 파일 인 showContentAgency 여기

//Add Agency content 
$("ul.top-level").on("click", "li.agency a", function (event) { 
    if($(this).next().length) { 
     var numbs = $(this).attr("href").match(/id=([0-9]+)/)[1]; 
     showContentAgency(numbs, this); 
    } else { 
     $(this).closest('ul').find('a').removeClass('sub-active'); 
    } 
    event.preventDefault(); 
}); 

그리고있다(); 함수 :

function showContentAgency(id, elem) { 
    $.post("assets/includes/contentAgency.php?id=id", { 
     id: id 
    }, function (data) { 
     $(elem).addClass("nav-active").parent().find("ul").html(data).show(); 
    }); 
} 

내가 원하는 것은 PHP에서 jQuery를 삽입하는 대신 순서가 지정되지 않은 목록을 렌더링하도록하는 것입니다. 이것은 현재 위의 PHP 파일에 등장하는 방법입니다 :

echo "<li class=\"agency\"><a href=\"contentAgency.php?id=$id\">$name</a><ul class=\"agency-sub\"></ul></li>" 

그래서 나는 <ul class="agency-sub"> 목록을 채울 수있는 PHP를하고 싶습니다.

+0

당신이 묻는 것은 약간 명확하지 않습니다. PHP 스크립트가 전송하기 전에 PHP 스크립트가 UL을 채우게하려면 그냥 그렇게해야합니다. 무슨 문제 있니? 나중에 PHP를 동적으로 채우려는 PHP를 원하십니까? – Chuck

+0

정확하게, 나는 PHP가 목록을 채우길 원합니다. 하지만 나는 PHP에 대해 너무 익숙해 목록 안의 목록을 채우는 방법을 확신하지 못합니까? 나는 js에서 그것을 할 수 있었지만 PHP에서 어떻게 할 지 모른다. – Yahreen

답변

0

코드 구조가 조금 분명하지 않지만 광범위한 개요는 다음과 같습니다. contentAgency.php에서 콘텐츠를 생성하는 모든 함수를 가져 와서 HTML을 가져온 다음 호출하면 목록을 작성하는 중입니다.

0

PHP는 Jquery처럼 페이지의 DOM에 액세스 할 수 없습니다. PHP를 사용하여 DOM에 액세스하려면 전체 웹 페이지를 구문 분석해야합니다. 그러면 원하는 작업을 수행하기에는 실용적이지 않을 수 있습니다. PHP는 브라우저가로드하기 전에 페이지를 수정할 수 있습니다. 페이지로드 후 코드를 실행하려면 javascript를 사용해야합니다.

더 많은 코드를 게시하면 현재 페이지의 코드가 어떤 모양인지 모르기 때문에 더 많은 도움을 줄 수 있습니다.

+0

DOM에 액세스 할 필요가 없습니다. 페이지를 보내기 전에 정렬되지 않은 목록에 UL을 채우려고합니다. 나는 js에서 그렇게 할 수 있었지만 PHP로 전환하고 싶습니다. – Yahreen

0

목록의 목록입니까? 당신이 내부에 작은 따옴표를 사용할 수있는 에코에 큰 따옴표를 사용하는 경우는 아래와 같은 PHP 코드를 작성할 수있는 방법으로

, 그것은

<?php 
include 'config.php'; 
include 'opendb.php'; 

$query = "SELECT * FROM agency ORDER BY name"; 
$result = mysql_query($query); 
while($row = mysql_fetch_assoc($result)){ 
$id = $row['id']; 
$name = $row['name']; 
echo "<li class='agency'><a href='contentAgency.php?id=$id'>$name</a><ul class='agency-sub'></ul></li>"; 
} 

include 'closedb.php'; 
?> 

더 읽을 수 있습니다.

+0

예, 목록 내에 목록을 채우려고합니다. 하지만 자바 스크립트를 사용하기보다는 PHP로하고 싶습니다. 팁 (btw)에도 감사드립니다. – Yahreen

0

나는 정확히 무엇을 원하는지 확실하지 않지만 'foreach'루프를 찾고있는 것처럼 들립니다. 나는 간단한 사용 나는 결과 집합에서 물건의 목록을 채울 싶어하는 경우 :

<ul> 
<? foreach($result as $object) ?> 
    <li><?=$object?></li> 
<? endforeach; ?> 
</ul> 

의 foreach는 루프를 작동하지만 백그라운드에서 모든 로직을 수행. 희망이 도움이됩니다.

관련 문제