View Full Version : Utilizzo del metodo GET
Andrea_CT
13-01-2018, 19:24
Salve a tutti, sono nuovo su questo forum e, come da titolo, ho un problema sull'utilizzo del metodo GET. Sicuramente è un problema di facile risoluzione ma non sono riuscito a venirne a capo.
Ho una pagina HTML all'interno della quale c'è un bottone che mi rimanda al seguente div e quindi all'apertura della pagina "prova.php".
<div id="dialog-form" title="Rispondi">
<object type="text/html" data="prova.php" width="420px", height="420px"></object>
</div>
Il mio obiettivo è passare una variabile nella pagina php e per farlo utilizzo il metodo GET.
Per questo motivo modifico
data="prova.php" in data="prova.php?CODICE="+id dove ovviamente id è la variabile della pagina html che voglio passare.
Nella pagina php richiamo la variabile con $_GET['CODICE'] che tuttavia mi ritorna 0, probabilmente perchè non legge la variabile id.
Ho provato a semplificare nel seguente modo (per fare una prova) data="prova.php?CODICE=5" e così mi viene tornato correttamente 5 come valore.
Grazie in anticipo...
Ciao, il problema è che tenti di passare un parametro tramite la variabile id inserita direttamente nell'html.
Questo non potrà mai funzionare, in quanto non è possibile usare variabili javascript nell'html (a meno che tu non stia usando framework come angular, react e così via).
Per far funzionare il tutto dovrai cambiare l'attributo "data" del tag object dinamicamente attraverso javascript.
In pratica alla pressione del tasto che visualizza il tuo div andremo a chiamare una funzione che modifica il tag object.
Ad esempio:
HTML
<button onclick="visualizzaPagina(4)">Visualizza</button>
<div id="dialog-form" title="Rispondi">
<object type="text/html" id="contenitore" data="prova.php" width="420px", height="420px"></object>
</div>
JAVASCRIPT
function visualizzaPagina(id){
document.getElementById('contenitore').data = 'prova.php?CODICE='+id;
}
Andrea_CT
14-01-2018, 11:13
Ciao, il problema è che tenti di passare un parametro tramite la variabile id inserita direttamente nell'html.
Questo non potrà mai funzionare, in quanto non è possibile usare variabili javascript nell'html (a meno che tu non stia usando framework come angular, react e così via).
Per far funzionare il tutto dovrai cambiare l'attributo "data" del tag object dinamicamente attraverso javascript.
In pratica alla pressione del tasto che visualizza il tuo div andremo a chiamare una funzione che modifica il tag object.
Ad esempio:
HTML
<button onclick="visualizzaPagina(4)">Visualizza</button>
<div id="dialog-form" title="Rispondi">
<object type="text/html" id="contenitore" data="prova.php" width="420px", height="420px"></object>
</div>
JAVASCRIPT
function visualizzaPagina(id){
document.getElementById('contenitore').data = 'prova.php?CODICE='+id;
}
Grazie mille, così funziona perfettamente :)
Andrea_CT
14-01-2018, 13:36
Altro problema: questa è la pagina in cui ricevo la variabile, e la leggo correttamente. Adesso devo passarla a "upload.php" ma anche in questo caso non va, come mai?
<html>
<?php
$cod = $_GET["CODICE"];
echo "$cod";
?>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.2.js"></script>
<head>
<style>
#writingArea {border: solid black 2px; touch-action:none; -ms-touch-action:none;}
</style>
<script src="hand-1.0.11.js"></script>
<script>
function pulisci() {
context.clearRect(0, 0, writingArea.width, writingArea.height);
}
var writingArea;
var context;
var pointerDown = [];
var lastPositions = [];
var onPointerMove = function(evt) {
if (pointerDown[evt.pointerId]) {
context.strokeStyle = "rgb(255, 0, 0)";
context.beginPath();
context.lineWidth = 3;
context.moveTo(lastPositions[evt.pointerId].x, lastPositions[evt.pointerId].y);
context.lineTo(evt.clientX, evt.clientY);
context.closePath();
context.stroke();
lastPositions[evt.pointerId] = { x: evt.clientX, y: evt.clientY };
}
};
var onPointerOut = function (evt) {
pointerDown[evt.pointerId] = false;
};
var onPointerUp = function (evt) {
pointerDown[evt.pointerId] = false;
};
var onPointerDown = function (evt) {
pointerDown[evt.pointerId] = true;
lastPositions[evt.pointerId] = { x: evt.clientX, y: evt.clientY };
};
window.onload = function() {
writingArea = document.getElementById("writingArea");
writingArea.width = writingArea.clientWidth;
writingArea.height = writingArea.clientHeight;
context = writingArea.getContext("2d");
writingArea.addEventListener("pointerdown", onPointerDown, false);
writingArea.addEventListener("pointermove", onPointerMove, false);
writingArea.addEventListener("pointerup", onPointerUp, false);
writingArea.addEventListener("pointerout", onPointerUp, false);
}
$(document).ready(function() {
$("#bt_upload").click(function() {
var writingArea = document.getElementById('writingArea');
var dataURL = writingArea.toDataURL();
$.ajax({
type: "GET",
url: "upload.php?prova=$cod",
data: { img: dataURL }
}).done(function(msg){
alert(msg);
});
});
});
</script>
</head>
<body>
<canvas width="350px" height="300px" id="writingArea"></canvas>
<p>
<button onclick="pulisci()">Pulisci</button>
<button id="bt_upload">Upload</button>
</p>
</div>
</body>
</html>
non funziona perchè non puoi stampare una variabile php senza usare i tag <?php ?>.
Devi cambiare la riga
url: "upload.php?prova=$cod",
in
url: "upload.php?prova=<?=$cod ?>",
Nota: la sintassi <?=$cod ?> è la versione abbreviata di <?php echo $cod; ?>
:)
Andrea_CT
14-01-2018, 13:56
chiarissimo grazie
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.