funzione javascript all'interno di un codice php

fabio97

Nuovo Utente
19 Giu 2013
24
0
0
Buongiorno! Volevo creare un forum in cui alcuni utenti inseriscono domande e altri utenti possono rispondere.
In particolare l'utente inserisce titolo e testo di una domanda e viene riportato in una pagina in cui visualizza il suo nome, titolo e ora di cui ha scritto la domanda.
Ad esempio.
L'utente di nome Giuseppe scrive in due text box:
Titolo: prova
Testo: sto facendo una prova
Poi clicca su invia (submit) e viene reindirizzato a una pagina in cui visualizza:
Nome: Giuseppe Titolo: prova Data e ora: 19-06-13 18:23:30

Fin qui tutto bene ma poi iniziano i problemi..
Prova è un link (< a href = "….">prova</a>) quindi se l'utente clicca su prova dovrebbe venire rimandato in una pagina in cui visualizza il titolo e il testo e in questa stessa pagina altri utenti possono rispondere alla domanda.
Ma non accade questo in quanto la pagina che visualizza è bianca.. quindi ho sicuramente sbagliato qualcosa nel codice (ho utilizzato anche le sessioni e funzioni javascript) ma non riesco a capire cose c'è che non funziona.

PHP:
<div class="domande">
		<p style="text-align: center"><b><u>Domande? Chiedi ogni cosa! <a href="http://localhost:8888/indice/topic.php">Clicca qui!</a></u></b></p>
		
		
		<?php
		
		//crerare sessione
		session_start();
				
		//controllo se nel database sono presenti delle domande
		$conn=mysql_connect('localhost', 'root', 'root') or die (mysql_error());
		mysql_select_db('topic', $conn) or die (mysql_error());
		$controlloconta=mysql_query("SELECT * FROM topic ") or die (mysql_error());
		
		//creo funzione onclick javascript
		?>
		<script type="application/x-javascript"><![CDATA[
			function memorizzazione () {
				$_SESSION['memoria'] = $row[titolo];
				return $_SESSION['memoria'];
			}
		//]]>
		</script>	
			
		<?php
		if($controlloconta>0){
		
			while($row=mysql_fetch_array($controlloconta)) 
			{
				echo "<b><br>Nome: </b>".$row[nome];
				echo "<b> Titolo: </b>"."<a href = 'http://localhost:8888/indice/arearispostetopic.php' title = '$row[titolo]' onclick = 'javascript: memorizzazione ()'>".$row[titolo]."</a>";
				echo "<b> Data e ora: </b>".$row[ora];
			}
			
		}
		?>
	</div>

PHP:
<div class="arearisposte">
            <?php
                
                session_start();
                
                //prendo titolo dal database	
		$conn=mysql_connect('localhost', 'root', 'root') or die (mysql_error());
		mysql_select_db('topic', $conn) or die (mysql_error());
                $memoria = memorizzazione ();
		$controlloconta=mysql_query("SELECT id,titolo,testo,ora FROM topic WHERE titolo = $memoria") or die (mysql_error());
		
		if ($controlloconta>0) {
		
			while($row=mysql_fetch_array($controlloconta)) 
			{
				echo "<b> Titolo: </b>".$row[titolo];
                                echo "Testo: ".$row[testo];
			}
			
		}
		?>
		<p style="text-align: center"> </p>
		
		
	</div>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non ho guardato bene, ma prima di tutto ricordati che la session_start deve essere la prima istruzione, prima di qualsiasi output html
e per uotput si intende anche uno spazio. correggi così
PHP:
<?php
session_start();
?>
<!-- eccetera altro html e/o php-->
<!DOCTYPE html>
<!-- eccetera altro html e/o php-->
 

fabio97

Nuovo Utente
19 Giu 2013
24
0
0
Ho corretto come mi hai detto ma ora visualizzo lo stesso la pagina in bianco e non il titolo e il testo della domanda dell'utente.
 

fabio97

Nuovo Utente
19 Giu 2013
24
0
0
Ho provato a mettere il codice su altervista e mi dà il seguente errore:
Fatal error: Call to undefined function memorizzazione() in /membri/photovideomovie/php/NuovaCartella/sito/arearispostetopic.php on line 123
Quindi significa che la funzione memorizzazione () non è specificata, ma il fatto è che tale funzione è specificata in un altro file php.
Perciò come devo fare per richiamare una funzione da un file php che ho scritto in un altro file php??
Grazie!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
guarda che php NON legge js
php viene interpretato sul server e cerca la
PHP:
<?php
function memorizzazione (){
    //..........
}
?>
non trovandola ti da quell'errore
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
a che ne so io non puoi, salvo forse ricorrendo a ajax e/o jquery ma di cui non so dirti.
e se ci pensi è logico che sia così, php è lato server, js lato client
cioè puoi passare del php a js, ma non js a php
 

fabio97

Nuovo Utente
19 Giu 2013
24
0
0
Ah ok grazie e non si può creare una funzione php ma che viene richiamata con un onclcick?
Intendo una funzione onclick ma in php e non js
 

fabio97

Nuovo Utente
19 Giu 2013
24
0
0
Ho provato a modificare i due file utilizzando Jquery e Ajax.
Mi potreste, gentilmente e per favore, aiutare a mettere a posto i seguenti codici? Grazie

Codice seziondedomande.php
PHP:
<html>
<head>
	<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
	<title>Sezione domande</title>
</head>
<body>
        <div class="domande">
		<p style="text-align: center"><b><u>Domande? Chiedi ogni cosa! <a href="http://localhost:8888/indice/topic.php">Clicca qui!</a>   </u></b></p>
		
		
		<?php
				
		//controllo se nel database sono presenti delle domande
		$conn=mysql_connect('localhost', 'root', 'root') or die (mysql_error());
		mysql_select_db('topic', $conn) or die (mysql_error());
		$controlloconta=mysql_query("SELECT * FROM topic ") or die (mysql_error());
		
		if($controlloconta>0){
		
			while($row=mysql_fetch_array($controlloconta)) 
			{
				echo "<b><br>Nome: </b>".$row[nome];
				echo "<b> Titolo: </b>"."<a href = 'http://localhost:8888/indice/arearispostetopic.php' name = 'title' title = '$row[titolo]'>".$row[titolo]."</a>";
				echo "<b> Data e ora: </b>".$row[ora];
			}
			
		}
		?>
	</div>
</body>
</html>
Codice arearipostetopic.php
PHP:
<html>
<head>
        <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
        <div class="arearisposte">
            <script type="application/x-javascript"><![CDATA[
		$(document).ready(function() {
                    $("#a").click(function(){
                        $.ajax ({
                            url: 'http://localhost:8888/indiceseziondedomande.php',
                            success: function (data) {
                                $memoria = val(data);
                            }
                        });
                    });
		});
	    //]]>
	    </script>
            
            <?php                
                //prendo titolo dal database	
		$conn=mysql_connect('localhost', 'root', 'root') or die (mysql_error());
		mysql_select_db('topic', $conn) or die (mysql_error());
                //$memoria = memorizzazione ();
		$controlloconta=mysql_query("SELECT id,titolo,testo,ora FROM topic WHERE titolo = $memoria") or die (mysql_error());
		
		if ($controlloconta>0) {
		
			while($row=mysql_fetch_array($controlloconta)) 
			{
				echo "<b> Titolo: </b>".$row[titolo];
                                echo "Testo: ".$row[testo];
			}
			
		}
		?>		
		
	</div>
</body>
</html>
 

giamma

Utente Attivo
4 Mag 2005
111
0
0
cioè io non capisco dove sia il tuo problema? il titolo nome data e ora devono essere della persona che ha messo in memoria i dati nel db? Oppure nome titolo ora e data deve essere visibile a tutti cliccando un link? Io non ho capito bene quello che vuoi fare... Te lo chiedo perchè ho l'impressione che tu ti stia fasciando la testa. (perchè vuoi usare js che è una programmazione lato client con il php lato server?)
 
Ultima modifica:

fabio97

Nuovo Utente
19 Giu 2013
24
0
0
No allora mi sono spiegato male io..
Ho due pagine php: una è quella con <div class = "domande">...</div>
L'altra con <div class = "arearisposte"> ... </div>
All'interno della prima TUTTI devono visualizzare nome titolo ora
Poi se un utente clicca su titolo (è un link! <a href="http://........">titolo</a> viene rimandato nella seconda pagina in cui visualizza il testo della domanda con il titolo a cui a cliccato!
Quindi per fare ciò volevo usare js in quanto ho bisogno di creare un evento onclick poichè l'utente viene rimandato nell'altra pagina solo quando clicca su titolo!
 

giamma

Utente Attivo
4 Mag 2005
111
0
0
io vedrei una cosa cosi lancio l'idea:

where prendo tutti i valori nel db delle domande già risposte dentro al ciclo metterei <a href=secondapagina.php?id=valore della domanda> titolo</a> eccetera


se clicca titolo nella seconda pagina avrai un $_GET[id] con un valore che associato se lo passi in modo corretto va a pescarsi la domanda nel db

spero di esserti stato utile fammi sapere... ciao
 

fabio97

Nuovo Utente
19 Giu 2013
24
0
0
Ah potrei provare solo che l'ID è autoincrhement quindi come faccio ad assocciare l'id giusto ad ogni nuova domanda?
oppure se utilizzo una funzione jquery e ajax tipo la seguente?
HTML:
<div class="arearisposte"> 
            <script type="application/x-javascript"><![CDATA[ 
        $(document).ready(function() { 
                    $("#a").click(function(){ 
                        $.ajax ({ 
                            url: 'http://localhost:8888/indiceseziondedomande.php', 
                            success: function (data) { 
                                $memoria = val(data); 
                            } 
                        }); 
                    }); 
        }); 
        //]]> 
        </script>
 
Ultima modifica:

giamma

Utente Attivo
4 Mag 2005
111
0
0
per associarla alla domanda puoi usare esempio $_GET[titolo] cioe quello che voglio dirti non ti serve js basta che crei un link esempio <a href="secondapag.php?titolo=valore">titolo</a> che una volta richiamata la seconda pagina avrai un valore $_GET[titolo] da utilizzare esempio in una quey per effettuare il select ed estrarre la domanda... mi spiego sappimi dire ciao
 

fabio97

Nuovo Utente
19 Giu 2013
24
0
0
Ok grazie provo a sistemare il codice e poi lo posto in modo da fartelo vedere ;) Grazie mille!
 

fabio97

Nuovo Utente
19 Giu 2013
24
0
0
Sono riuscito a sistemare quel pezzo di codice ma mi trovo in difficoltà con un altro codice in quanto se un altro utente che è registrato visualizza la domanda ha la possibilità di rispondere. Volevo chiedervi come posso fare per far si che la risposta dell'utente venga scritta direttamente nella pagina con un redirect senza memorizzarla prima in un database. Grazie!
PHP:
<html>
<title>Area topic</title>
    </head>
    <body>
        <form action="#" name="topic" method="post">
            <p class="title"><b><u>Benvenuto nell'area risposte!</u></b></p>
        
            <p class="questiontext"><b>Risposta: </b></p>
            <textarea  name="answertext" id="answertext" cols="150" rows="27" style="margin-left: 30px">
            
            </textarea>
        
            <p class="answersubmit">
                <b>Invia risposta: <input type="submit" name="inviarisposta" value="INVIA"</b><br>
                <b>Annulla risposta: <input type="reset" name="annullarisposta" value="ANNULLA"</b>
            </p>
            <?php
                if($_POST['inviarisposta']) {
                    //prendo testo e lo metto in db name = risposta
                    //ricarico pagina arearisposte
                    
                    $testo=$_POST["questiontext"];
                    
                    //sistemare codice per risposta
                    
                    header("Location: http://localhost:8888/indice/arearisposte.php");
                }
                
            ?>
        </form>
        
           
    </body>
</html>
 

giamma

Utente Attivo
4 Mag 2005
111
0
0
Sono riuscito a sistemare quel pezzo di codice ma mi trovo in difficoltà con un altro codice in quanto se un altro utente che è registrato visualizza la domanda ha la possibilità di rispondere. Volevo chiedervi come posso fare per far si che la risposta dell'utente venga scritta direttamente nella pagina con un redirect senza memorizzarla prima in un database. Grazie!
PHP:
<html>
<title>Area topic</title>
    </head>
    <body>
        <form action="#" name="topic" method="post">
            <p class="title"><b><u>Benvenuto nell'area risposte!</u></b></p>
        
            <p class="questiontext"><b>Risposta: </b></p>
            <textarea  name="answertext" id="answertext" cols="150" rows="27" style="margin-left: 30px">
            
            </textarea>
        
            <p class="answersubmit">
                <b>Invia risposta: <input type="submit" name="inviarisposta" value="INVIA"</b><br>
                <b>Annulla risposta: <input type="reset" name="annullarisposta" value="ANNULLA"</b>
            </p>
            <?php
                if($_POST['inviarisposta']) {
                    //prendo testo e lo metto in db name = risposta
                    //ricarico pagina arearisposte
                    
                    $testo=$_POST["questiontext"];
                    
                    //sistemare codice per risposta
                    
                    header("Location: http://localhost:8888/indice/arearisposte.php");
                }
                
            ?>
        </form>// non lo vedo giusto qui il form il php lo puoi scrivere fuori dal html
        
           
    </body>
</html>
io proverei scriverlo così...
PHP:
<?php
                if($_POST['inviarisposta']) {
                    //prendo testo e lo metto in db name = risposta
                    //ricarico pagina arearisposte
                    
                    $testo=$_POST["questiontext"];
                    
                    //sistemare codice per risposta
                    
                    header("Location: http://localhost:8888/indice/arearisposte.php?testo=".$testo);// prova a scriverlo cosi
                }
                
            ?>
// qui sotto metti pure l'html

mi dai l'indirizzo del tuo sito mi piacerebbe vederlo
 

fabio97

Nuovo Utente
19 Giu 2013
24
0
0
provato ma non va (non fa nemmeno il redirect)
Comunque il sito è ancora in locale quindi non lo potresti vedere
 
Discussioni simili
Autore Titolo Forum Risposte Data
IClaude Funzione Javascript Javascript 8
max1974 [Javascript] Funzione Errata procedura Javascript 2
pjtertdj Visualizzazione dati in php da mysql con funzione matematica in javascript PHP 1
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
elpirata [Javascript] Lo script alle volte funzione altre volte no Javascript 0
R [Javascript] Rendere una funzione sempre visibile Javascript 2
A [Javascript] tabella dinamica e onchange su funzione Javascript 1
P [Javascript] Inserire una nuova condizione in una funzione Javascript 3
T [Javascript] funzione per attivare analytics... dov'è l'errore? Javascript 14
L [javascript]problema funzione per webapi Javascript 4
C [Javascript] Chiamata di una funzione da *.js esterno Javascript 1
J [Javascript] una funzione ricorsiva che non capisco come lavori Javascript 6
G [Javascript] nome da dare ad una funzione Javascript 1
Laskot [Javascript] Funzione JS con parametro Javascript 4
ken_korn [Javascript] Portare variabile in una funzione esterna al suo scope Javascript 2
I Riportare dati funzione javascript in textbox Javascript 0
P [Javascript] eseguire una funzione dopo un'altra Javascript 0
Strato-Fortex [Javascript] Risoluzione funzione cifrario di Cesare Javascript 4
S [Javascript] Problema richiamo funzione Javascript 8
F [Javascript] Problema funzione jquery con elementi css esterni Javascript 1
M [Javascript] Funzione con collegamenti ipertestuali JS Javascript 4
A Funzione javascript per effettuare la slide del carosello in avanti Javascript 0
Andrea Perrone funzione javascript applicata al gioco della dama Javascript 2
S [Javascript] Codice JS inline non funzione su IE Javascript 1
ANDREA20 [Javascript] funzione menu Javascript 1
M Far partire una funzione/codice php con javascript Javascript 1
U Far partire una funzione JavaScript premendo bottone in html Javascript 13
Marco_88 Funzione mouseover Javascript jQuery 3
V Chiamata funzione php da javascript Ajax 3
M Lanciare una funzione asp.net con javascript. E' possibile? ASP.NET 0
A richiamare funzione javascript dopo login in popup. Javascript 0
B AIUTO: come passare una variabile php ad una funzione javascript Javascript 2
ivarello Attivare funzione Javascript con Jquery jQuery 0
A eseguire codice html da funzione javascript Javascript 2
C Un form di input e uno di output con funzione javascript Javascript 17
D Problema nella chiamata ad una funzione javascript da href Ajax 2
G funzione javascript per passaggio valori Javascript 1
A Salvataggio dati (era: funzione penso in javascript) PHP 2
I Eseguire funz. Javascript caricata tramite la funzione Ajax di JQuery in onChange Javascript 0
I Eseguire funz. Javascript caricata tramite la funzione Ajax di JQuery in onChange Javascript 0
mkrapfen aiuto! funzione javascript Javascript 0
M JavaScript: lanciare funzione ASP per salvare dati in database Javascript 0
G ajax php myqsl - problema con funzione javascript Ajax 1
I javascript non carica funzione Javascript 0
D Funzione javascript che pulisca un campo input Javascript 0
F Memorizzare valore variabile da una funzione javascript Javascript 10
M Problema funzione chiamata una volta solo in javascript Javascript 1
R passare valori da funzione javascript Javascript 1
P visulaizzare eventi con una funzione in javascript Javascript 0
G richiamare file php da funzione javascript PHP 4

Discussioni simili