Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    passare valori con js - problema stringa divisa

    Devo recuperare dei dati da un db mysql con php e poi cliccando sui risultati mi si deve aprire un popup.

    La funzione in javascript è passa(var1, var2, var3) che prende i valori passati dalla pagina php e fa il popup.

    Sul php faccio un onCLick=passa(var1, var2, var3) con le variabili che sono settate dopo un ciclo che scrorre in un db.

    La cosa strana è che quando sul db c'è una stringa tutta attaccata tipo :sonoandatoalmare il popup si crea ed i dati sono visualizzati.
    Quando invece la stringa è separata non va, per esempio "sono andato al mare"!

    Perchè fa così?

    Metto il codice essenziale per farvi vedere qualcosa!

    Il codice è questo per il richiamo della funzione:

    codice:
    while ($row = mysql_fetch_array($result)) {
    
    			$data = $row["data"];
    			$titolo = $row["titolo"];
    			$testo = $row["testo"];
    
    			print "<tr>";
    			print "<td width='90' height='30' valign='center' class='ultime_h_data'>".$row["data"].": </td>
    <td width='380' height='30' valign='center' class='ultime_h_det'>
    ".$row["titolo"]."</td>";
    			print "</tr>";
    		}

    questo è il js:





    codice:
    <script Language="Javascript"><!--
    	function passa(data, titolo, testo){
    
    		var var1=new Object;
    		var var2=new Object;
    		var var3=new Object;
    
    		var1.name = data;
    		var2.name = titolo;
    		var3.name = testo;
    
    		win = window.open('','pop','width=420, height=500, scrollbars=yes');
    		
    		win.document.write("
    <tr><td HEIGHT='30' valign='center' class='news_data'>Data: " + var1.name+ " </td></tr>
    <tr><td HEIGHT='30' valign='center'>" + var2.name+ "</td></tr>
    <tr><td HEIGHT='290' valign='top'>" + var3.name+ "</td></tr>")
    		}
    --></script>

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    qual è il codice html che viene prodotto? Potresti postare un esempio di pagina dove si verifica il problema?
    Ciao
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Questa è l'inizio della pagina in php:

    codice:
    <HTML>
    <HEAD>
    <style type="text/css">
    	@import "stile.css";
    </style>
    
    <script Language="Javascript"><!--
    	function passa(data){
    
    		var var1=new Object;
    		//var var2=new Object;
    		//var var3=new Object;
    
    		var1.name = data;
    		//var2.name = titolo;
    		//var3.name = testo;
    
    		win = window.open('','pop','width=420, height=500, scrollbars=yes');
    		
    		win.document.write("<html><head><style type='text/css'> @import 'stile.css';</style><title>LE INIZIATIVE </title></head>
    		<body bgcolor='#ffffff' topmargin='0' leftmargin='0'><table width='400' height='498' border='0' cellpadding='0' cellspacing='0' rules='all' frame='border' class='news_tot'><tr><td valign='top'>
    		<table width='400' height='70' border='0' cellpadding='0' cellspacing='4' rules='all' frame='border' class='news_up'><tr><td></td></tr></table>
    		<table width='400' height='380' border='0' cellpadding='0' cellspacing='4' rules='all' frame='border' class='news'>
    		<tr><td HEIGHT='30' valign='center' class='news_data'>Data: " + data + " </td></tr>
    		<tr><td HEIGHT='30' valign='center'>" + data + "</td></tr>
    		<tr><td HEIGHT='290' valign='top'>" + data + "</td></tr></table>
    		<table width='400' height='20' border='0' cellpadding='0' cellspacing='4' rules='all' frame='border' class='news_footer'><tr><td width='290'>@email.it</td>
    		<td width='110'>[img]image/logomini.gif[/img]</td></tr></table></td></tr></table></body></html>");
    		}
    --></script>
    
    
    <META NAME="description" CONTENT=".">
    <META NAME="Keywords" CONTENT="">
    <TITLE>Emi</TITLE>
    </HEAD>


    Poi in unatabella della pagina c'è il richiamo ad una classe in cui ciclo per recuperare i dati dal db e creo i link in cui c'è onClick= che richiama la funzione js:


    codice:
    <?
    class class_news_h
    {
    	function class_news_h()
    	{
    		include("setConn.php");
    		
    		$sql = "SELECT iniziative.ID AS ID, iniziative.titolo, iniziative.testo,  DATE_FORMAT(iniziative.data, '%d-%m-%Y') as data FROM iniziative ORDER BY iniziative.data DESC";
    
    		$result = mysql_db_query("sezione", $sql, $db);
    
    
    		print "<table width='470' height='100' border='0' cellpadding='0' cellspacing='0'>";
    
    		print "<tr><td width='470' height='50' valign='center' colspan='2' class='ultime_h_titolo'><a name='#A' class='ultime_h_titolo'>LE INIZIATIVE</a></td></tr>";
    
    		
    		while ($row = mysql_fetch_array($result)) {
    
    			$data = $row["data"];
    			$titolo = $row["titolo"];
    			$testo = $row["testo"];
    
    			print "<tr>";
    			print "<td width='90' height='30' valign='center' class='ultime_h_data'>".$row["data"].": </td><td width='380' height='30' valign='center' class='ultime_h_det'>".$row["titolo"]."</td>";
    			print "</tr>";
    		}
    
    		print "</table>";
    		
    
    		/* Liberazione delle risorse del risultato */
    		mysql_free_result($result);
    
    		/* Chiusura della connessione */
    		mysql_close($db);
    	}
    }
    ?>


    Questo è il codice di un popup aperto con la stringa tutta attaccata:

    codice:
    <html><head><style type='text/css'> @import 'stile.css';</style><title>LE INIZIATIVE DELLA SEZIONE PORTO FLUVIALE</title></head><body bgcolor='#ffffff' topmargin='0' leftmargin='0'><table width='400' height='498' border='0' cellpadding='0' cellspacing='0' rules='all' frame='border' class='news_tot'><tr><td valign='top'><table width='400' height='70' border='0' cellpadding='0' cellspacing='4' rules='all' frame='border' class='news_up'><tr><td></td></tr></table><table width='400' height='380' border='0' cellpadding='0' cellspacing='4' rules='all' frame='border' class='news'><tr><td HEIGHT='30' valign='center' class='news_data'>Data: SE </td></tr><tr><td HEIGHT='30' valign='center'>SE</td></tr><tr><td HEIGHT='290' valign='top'>SE</td></tr></table><table width='400' height='20' border='0' cellpadding='0' cellspacing='4' rules='all' frame='border' class='news_footer'><tr><td width='290'>sezione_portofluviale@email.it</td><td width='110'>[img]image/logomini.gif[/img]</td></tr></table></td></tr></table></body></html>
    ripeto, se la stringa è senza spazi la passa, altrimenti se ci sono spazi non mi crea il popup!!!

    grazie!

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    prova intanto a scrivere codice un po' più "compliant", mi riferisco a dove fai il print del link

    prova a riscriverlo come:

    codice:
    <a href=\"javascript:;\" onClick=\"passa(....);\" class=\"...>
    Poi bisogna vedere come interpreta gli spazi (per quello volevo vedere il codice html e non quello php).

    Saluti.

    PS: javascript nel codice compare sempre staccato, va chiaramente scritto tutto attaccato.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    PS: javascript nel codice compare sempre staccato, va chiaramente scritto tutto attaccato.
    NOn ho capito molto bene questo, però ora funziona!!!!

    ti ringrazio. Solo un'altra cosa....javascript fa casini con gli apici vero?

    Quale è la soluizone migliore per risolvere questo problema?

    Devo analizzare la sringa e mettere \' ?

    grazie!

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    la parola javascript nel tag [CODE] del forum compare divisa "java" "script" per motivi di sicurezza. Se uno sbadatamente fa copia/incolla di codice magari si trova con script non funzionanti

    Bhè, il problema da te era che usavi l'apice singolo per parametri di tag html, il che non va tanto bene. L'apice singolo invece va bene per passare valori stringa, ad esempio, ad una funzione javascript.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.