2013-11-28 1 views
0

나는 virtuemart에서 비교 페이지를하고 있습니다. 내가의 joomla \ 구성 요소를 수정할 \ com_virtuemart 전망 \ \ 카테고리 \ tmpl \ default.php이 방법으로 파일을버추 마트의 제품 비교

<?php 

include ("/includes/compare.php"); 

$con=mysqli_connect("localhost","root","","auto2"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$result = mysqli_query($con,"SELECT * FROM auto_virtuemart_products"); 
?> 
<table border="1" cellspacing="2" cellpadding="2"> 
<tr> 
<td> 
<font face="Arial, Helvetica, sans-serif">Value1</font> 
</td> 
</tr> 

<?php 
while($row = mysqli_fetch_array($result)) { 
?> 

<tr> 
<td> 
<font face="Arial, Helvetica, sans-serif"><?php echo $row['product_sku']; ?></font> 
</td> 
<td> 
<form action="compare.php" method="get"> 
<input type="checkbox" name="send1[]" value="<?php echo $row?>" /> 

</td> 
</tr> 

<?php 
} 
mysqli_close($con); 
?> 

그리고 I가 compare.php를 추가 포함 폴더 :

<?php 
    $con=mysqli_connect("localhost","root","","auto2"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    if (isset($_GET['send1'])) { 
     $compare1 = $_GET['send1']; 


if (isset($_GET['Submit'])) { 
    for ($i=0; $i<sizeof($compare1);$i++) { 

    $result = mysqli_query($con,"SELECT * FROM auto_virtuemart_products WHERE '$compare1[$i]' LIKE product_sku"); 

    while($row = mysqli_fetch_array($result)) 
    { 
    echo $row['product_sku'] . " " . $row['product_weight']; 
    echo "<br>"; 
    } 

    } 
    } 
    else { 
    echo ("error"); 
    } 
    } 
    ?> 

모든 버튼을 클릭하면 다음 오류가 발생합니다.

오류가 발생했습니다. 요청한 페이지를 찾을 수 없습니다.

(404) 제는이 기사로 정의되어 있지 않은 경우 그 줌라 다른 페이지를 표시하지 않습니다, 나는 그 문제가 예상

를 찾을 수 없습니다.

보안 문제를 해결하지 말고 그들에 대해 알고 있으며 나중에 해결할 것입니다. 이제는 localhost에서 시작했습니다.

제발 나에게 조언을 해줄 수있어. 어떻게이 문제를 해결할 수 있니? 외부 페이지를 사용하여 정상적인 형태와 같이 제출되는 이유는

당신에게

답변

0

대단히 감사합니다.

줌라 & VM은 MVC이므로이 기능을 사용하십시오. 또한 이와 같은 mysql 함수를 사용하지 마십시오. Joomla DB 객체를 사용하십시오. 제품 비교

나는이 방법처럼 작동 할 수 있다고 생각

,

는 VM 옵션은 그래서 당신의 VM 구성 요소 내에서보기를 만들 관련이 (VM2.x 가정) 그냥 새 뷰에 대한 관련 컨트롤러와 모델을 만들 수 있습니다.

보기에는 새로운 레이아웃을 추가 할 수있는 기능이 있으므로 비교 양식이 레이아웃이어야합니다.

귀하의 양식은 아래와 같습니다. 양식 액션

index.php?option=com_virtuemart&controller=yourcontroller&task=yourtask 

task에 은 컨트롤러 내부의 기능입니다.

여기에는 아래의 방법 (양식 동작 사용)이 포함될 수 있습니다.

<input type="hidden" value="com_virtuemart" name="option"> 
<input type="hidden" value="yourcontroller.yourtask" name="task">. 

또한 모델에서 다음과 같은 DB 개체를 사용할 수 있습니다.

$db = JFactory::getDBO(); 
$sql= "your sql query"; 
$db->setQuery($sql); 
$db->query();//This may changed based on Joomla versions. 

희망 사항은 Joomla 및 VM 표준을 따르십시오.

+0

호세 님, 저는 우리가 잘 이해하지 못했을 것이라고 생각합니다. 기본 페이지로 첫 번째 PHP 코드를 사용하고 싶습니다. 그래서 MVC에 대해 연구하기 시작했고, 이렇게 할 수 있는지 물어보고 싶습니다. 첫 번째 PHP 코드를 기본 레이아웃으로 사용합니다. 즉, 모든 쿼리를 삭제하고 Model.php로 이동합니다. 그리고 View.php에서 함수를 만들면 데이터베이스의 모든 데이터 또는 내 양식의 선택된 데이터가 표시됩니다. 이런 식으로 할 수 있습니까? 아니면 당신의 아이디어를 좀 더 자세히 설명해 주시겠습니까? 감사합니다 – user3014837

+0

귀하의 첫 번째 단계가 정확합니다 즉.귀하의 양식은 기본 레이아웃이 될 것입니다 (필요한 사전 채워진 데이터는 view.html.php에서 모델로부터 함수를 호출해야합니다). 당신의 폼은 컨트롤러의 함수에 보내야하는 데이터를 보내야하고 컨트롤러는 모델 파일로부터 DB 관련 함수를 호출 할 것입니다. 예를 들어, VM 및 관련 컨트롤러 및 product.php 모델 파일의 기본 제품 세부 정보 페이지를 살펴보십시오. 희망은 지금은 분명 –

관련 문제