繁体   English   中英

比较Virtuemart中的产品

[英]Compare products in Virtuemart

我正在做德美比较页面。 我想以这种方式修改joomla \\ components \\ com_virtuemart \\ views \\ category \\ 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);
?>

然后我将compare.php添加到include文件夹:

 <?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找不到文章

我希望问题在于,如果joomla没有定义为文章,它将不会显示其他页面。

请不要解决安全问题,我知道这些问题,稍后我会解决。 现在,我在本地主机上启动了它。

请您给我建议,我该如何解决?

非常感谢你

为什么使用外部页面并像普通表格一样提交。

Joomla和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标准。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM