我正在做virtmart比較頁面。我想修改的Joomla \分量\ com_virtuemart \視圖\類別\ TMPL \如default.php文件中這樣說:在Virtuemart中比較產品
<?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");
}
}
?>
一切是功能性的,但當我點擊按鈕提交時發生下一個錯誤:
發生錯誤。 無法找到請求的頁面。
404條未發現
我想到的是問題是,把Joomla將不顯示,如果它沒有被定義爲文章的另一頁。
請不要解決安全問題,我知道他們,我會稍後解決。現在我已經在localhost上啓動了它。
請你能指教我,我該如何解決這個問題?
爲什麼您使用外部頁面,並提交像正常的形式非常感謝您
親愛的何塞,我想我們不太明白。我想使用第一個PHP代碼作爲默認頁面。所以我開始研究一些有關MVC的內容,我想問你是否可以這樣做:我將使用第一個PHP代碼作爲默認佈局。這意味着我將刪除所有查詢,並將其移至Model.php。然後我會創建如果函數在View.php,它將顯示來自數據庫的所有數據或從我的表單中選擇的數據?可以這樣做嗎?或者你能否向我解釋你的想法更詳細?謝謝 – user3014837
你的第一步是正確的,即。你的表單將是一個默認的佈局,(如果它需要預先填充的數據,它應該從view.html.php調用它的模型中的一個函數)。你的表單需要發送一些數據,然後它應該被髮送到你的控制器中的一個函數,控制器將從模型文件中調用一個與數據庫相關的函數。例如,您只需查看虛擬機及其相關控制器和product.php模型文件的默認產品詳細信息頁面。希望它現在清楚 –