[英]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");
}
}
?>
一切正常,但是当我单击“提交”按钮时,发生下一个错误:
发生了错误。 找不到请求的页面。
我希望问题在于,如果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.