Heim > Fragen und Antworten > Hauptteil
Ich habe Probleme bei der Verwendung von PHP und JavaScript.
Ziel: Wenn der Ereignis-Listener für eine HTML-Schaltfläche in einer .js-Datei aufgerufen wird, sollte das .php-Skript ausgeführt werden, ohne die Seite neu zu laden.
Erwartete Ergebnisse: Wenn auf die Schaltfläche geklickt wird, wird das PHP-Skript ausgeführt. In meinem Fall wird die Datei von der URL auf den Server heruntergeladen.
Tatsächliches Ergebnis: Ich weiß nicht, wie ich ein PHP-Skript aus einer JavaScript-Datei aufrufen soll.
Ich habe versucht, AJAX zu verwenden, aber nichts hat funktioniert. Und ich weiß nicht, wo ich die JQuery-Bibliotheksreferenz ablegen soll.
Ich habe auch versucht, ein Formular zu verwenden und eine Eingabe darin einzugeben (type="submit"), aber wenn die PHP-Funktion aufgerufen wird, aktualisiert sie die Seite und alles auf der Seite, was clientseitig angezeigt wurde, ist verschwunden.
HTML-Schaltfläche:
<button type="button" class="button" id="btnsubmit">Submit</button> <img class="image" id="someimage">
JavaScript-Ereignis-Listener (Ich habe Variablen Schaltflächen und Bilder zugewiesen):
btnsubmit.addEventListener("click", () => { someimage.src = "directory/downloadedimg.png"; });
PHP-Skript:
<?php $path = 'https://somewebsite.com/imagetodownload.png'; $dir = 'directory/downloadedimg.png'; $content = file_get_contents($path); $fp = fopen($dir, "w"); fwrite($fp, $content); fclose($fp); ?>
Wenn also auf eine Schaltfläche geklickt wird, möchte ich im Allgemeinen Folgendes tun:
Ich habe die Antwort von @Abhishek ausprobiert und festgestellt, dass das Problem jetzt in meiner PHP-Datei liegt. Es wird mir immer ein interner Serverfehler angezeigt. Finden Sie Fehler in diesem Code, wenn Sie ein Bild von $path (einer URL) auf meinen Server hochladen (Serververzeichnispfad ist $image_url):
<?php $params = $_POST['data']; $path = $params['path']; $image_url = $params['image-url']; $content = file_get_contents($path); $fp = fopen($image_url, "w"); fwrite($fp, $content); fclose($fp); ?>
P粉5474204742024-02-18 09:55:32
不需要其他库,您可以使用 vanillaJs 来完成此操作。
你的误解来自:“如何用Js调用php并获取返回值”
从这里开始,您有一个例子: https://www.w3schools.com/php/php_ajax_php.asp
一旦您能够调用 PHP 脚本,您就完成了目标的 70%
P粉7878203962024-02-18 00:14:54
您可以执行以下操作。
$("#button-id").on('click',function(){ var data = {"image-url" : "directory/downloadedimg.png","path" : "https://somewebsite.com/imagetodownload.png"}; $.ajax({ type: 'POST', url: "{hostname}/test.php", data: data, dataType: "json", success: function(resultData) { alert("success"); } }); });
$params = $_POST['data']; $path = $params['path']; $image_url = $params['image-url'];
并进行您想做的业务运营。