- Joomla Version
- Joomla 4
- PHP Version
- PHP 8.1.x
- Hoster
- 1und1
Hallo zusammen und Gratulation zu eurem tollen Forum. Ich war bisher immer nur fleißiger Leser hier. Nun muss ich selbst mal fragen, da ich noch keine schlüssige Lösung zu meinem PRoblem gefunden hab.
Ich möchte mit folgenden Code (u.a. fetch), nach klick auf einen Button eine weitere PHP-Datei aufrufen.
Fehler:
Leider gibt mir Joomla 4 immer den Wert "Restricted access" zurück.
Frage:
Wohl erlaubt joomla den Zugriff auf die PHP-Datei nicht. Aber Warum?
Die Datei liegt im gleichen Verzeichnis als die jenige welche die Datei aufrufen soll. Allerdings muss ich ja einen Pfad im javascript angeben.
Wie kann ich das Problem lösen?
Der Code:
PHP
<?php
/**
*
* Show the product details page
*
* @package VirtueMart
* @subpackage
* @author Max Milbers, Valerie Isaksen
* @todo handle child products
* @link http://www.virtuemart.net
* @copyright Copyright (c) 2004 - 2010 VirtueMart Team. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* @version $Id: default_addtonotice.php 7833 2014-04-09 15:04:59Z Milbo $
*/
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');
$product = $viewData['product'];
$users = JFactory::getUser();
$usersid = $users->id;
$usersguest = $users->guest;
$produktid = $product->virtuemart_product_id;
$src2 = JURI::root() . 'templates/impulsashop/html/com_virtuemart/sublayouts/meine_php_datei.php';
echo ($src2);
?>
<script>
function myFunction() {
var element = document.getElementById("mybtn");
var element2 = document.getElementById("result_ausgabe");
// Überprüfung, ob die Klasse "nocompare_btn" bereits vorhanden ist
if (element.classList.contains("nocompare_btn")) {
// Wenn ja, füge "compare_btn" hinzu und entferne "nocompare_btn"
element.classList.remove("nocompare_btn");
element.classList.add("compare_btn");
fetch('<?php echo ($src2); ?>')
.then(response => response.text())
.then(data => {
console.log(data);
element2.innerText = data;
})
.catch(error => {console.error('Fehler beim Fetchen der Daten:', error)
});
} else {
// Wenn nicht, entferne "compare_btn" und füge "nocompare_btn" hinzu
element.classList.remove("compare_btn");
element.classList.add("nocompare_btn");
}
}
</script>
<div id="result_ausgabe"></div><br>
<a id="mybtn" onclick="myFunction()" class="compare_btn"><i class="fa fa-star"></i></a>
Alles anzeigen
Ich möchte mich vorab schon mal bei euch für eure Unterstützung bedanken.
Grüße Daniel