我在virtmart中做比较页面。我想以这种方式修改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添加到包含文件夹:
<?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将不会显示另一个页面。
请不要解决安全问题,我了解它们,我会在以后解决它们。现在我只在localhost上启动它。
请您指点一下,我该如何解决这个问题?
非常感谢
答案 0 :(得分:0)
为什么您使用外部网页并像普通表单一样提交。
Joomla&amp; 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标准。