funciona no firefox, não funciona no IE [Resolvido]

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

funciona no firefox, não funciona no IE [Resolvido]

Mensagempor pedrolm » Segunda Set 17, 2007 14:51

Este código funciona perfeitamente no firefox mas não consigo que funcione no IE.
Código: Seleccionar todos
<?php require_once('Connections/dbconnect.php'); ?>
<?php
//define('FPDF_FONTPATH','C:\EasyPHP1-8\www\PDF_POP\font/');
require('fpdf.php');
$pdf=new FPDF('P','mm','A4');
$numero = $_POST['num_oficio'];
$pdf->setFont('Times','',9);
$pdf->setmargins(20,50);
$morada="morada";
              if (isset($_POST["parentList"]))
           {
             $x=0;
        foreach($_POST["parentList"] as $list2)
{        $sql =mysql_query("SELECT morada FROM `tb_formandos` WHERE NOME_formando='$list2' ");
         while ($row=mysql_fetch_array($sql)){
$pdf->AddPage();
$pdf->SetX(90);
$pdf->write('5',$list2);
$pdf->ln();
$pdf->SetX(90);
$pdf->write('10',$row["morada"]);
.
.
.
  }
   }
$pdf->Output();

     }
mysql_close($dbconnect);?>
?>


Esta é a zona do código que funciona mal:
if (isset($_POST["parentList"]))
{
$x=0;
foreach($_POST["parentList"] as $list2)
pois quer tente imprimir o $list2 ou utiliza-lo na query não retorna erro mas não escreve nada, no entanto no firefox funciona perfeitamente.
Editado pela última vez por pedrolm em Quinta Set 20, 2007 11:40, num total de 1 vez.
pedrolm
Membro de Prata
Membro de Prata
 
Mensagens: 103
Registado: Quarta Mai 11, 2005 17:51

Mensagempor pedrolm » Segunda Set 17, 2007 16:30

Utilizei a função print_r($_POST["parentList"]) para mostrar o conteudo do array. Utilizando o firefox mostra as posiçoes do array e seu conteudo com os resultados do query, já no explorer devolve as posições mas sem conteudo....

Ex: Firefox- [0]=> ola [1]=>adeus
IE- [0]=> [1]=>

No entanto o numero de posições é correcto.

De notar que parentList vem de outra página em que:

<select size=15 name="parentList[]" id="parentList" multiple>
</select>
pedrolm
Membro de Prata
Membro de Prata
 
Mensagens: 103
Registado: Quarta Mai 11, 2005 17:51

Mensagempor CoolMaster » Segunda Set 17, 2007 17:06

Experimenta mudar o nome do id...
CoolMaster
Membro de Prata
Membro de Prata
 
Mensagens: 137
Registado: Segunda Dez 25, 2006 0:54
Localização: Porto

Mensagempor pedrolm » Terça Set 18, 2007 8:46

Obrigado pela resposta CoolMaster mas não resultou, alterei o name mas continua sem funcionar no IE.

O problema está sem duvida no $_Post["parentList"].
O isset deixa entrar pelo que ele sabe que está la algo mas depois não lê o conteudo do array. Estarei a passar mal o conteudo do parentList? Existe maneira melhor?
pedrolm
Membro de Prata
Membro de Prata
 
Mensagens: 103
Registado: Quarta Mai 11, 2005 17:51

Mensagempor CoolMaster » Terça Set 18, 2007 8:58

Mostra ai 2 ou 3 <option> desse select so para ver uma coisa
CoolMaster
Membro de Prata
Membro de Prata
 
Mensagens: 137
Registado: Segunda Dez 25, 2006 0:54
Localização: Porto

Mensagempor pedrolm » Terça Set 18, 2007 9:14

Pois não têm... é que estou a usar javascript para passar valores seleccionados de um select para esse. Ou seja a declaração é somente:


<select size=15 name="parentList[]" id="parentList" multiple>
</select>[/code]
pedrolm
Membro de Prata
Membro de Prata
 
Mensagens: 103
Registado: Quarta Mai 11, 2005 17:51

Mensagempor CoolMaster » Terça Set 18, 2007 10:17

Então o problema esta no javascript que não esta a por o value correctamente... tens que mostrar esse javascript.
CoolMaster
Membro de Prata
Membro de Prata
 
Mensagens: 137
Registado: Segunda Dez 25, 2006 0:54
Localização: Porto

Mensagempor pedrolm » Terça Set 18, 2007 10:30

Este código encontra-se numa página:
Código: Seleccionar todos
<SCRIPT LANGUAGE="JavaScript">
<!-- Original:  Pankaj Mittal (pankajm@writeme.com) -->
<!-- Web Site:  http://www.fortunecity.com/lavendar/lavender/21 -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
function small_window(myurl) {
var newWindow;
var props = 'scrollBars=yes,resizable=yes,toolbar=no,menubar=no,location=no,directories=no,width=900,height=500';
newWindow = window.open(myurl, "Add_from_Src_to_Dest", props);
}
// Adds the list of selected items selected in the child
// window to its list. It is called by child window to do so.
function addToParentList(sourceList) {
destinationList = window.document.forms[0].parentList;
for(var count = destinationList.options.length - 1; count >= 0; count--) {
destinationList.options[count] = null;
}
for(var i = 0; i < sourceList.options.length; i++) {
if (sourceList.options[i] != null)
destinationList.options[i] = new Option(sourceList.options[i].text, sourceList.options[i].value );
   }
}
// Marks all the items as selected for the submit button.
function selectList(sourceList) {
sourceList = window.document.forms[0].parentList;
for(var i = 0; i < sourceList.options.length; i++) {
if (sourceList.options[i] != null)
sourceList.options[i].selected = true;
}
return true;
}

// Deletes the selected items of supplied list.
function deleteSelectedItemsFromList(sourceList) {
var maxCnt = sourceList.options.length;
for(var i = maxCnt - 1; i >= 0; i--) {
if ((sourceList.options[i] != null) && (sourceList.options[i].selected == true)) {
sourceList.options[i] = null;
      }
   }
}
//  End -->

<select size=15 name="parent[]" id="parentList" multiple>
</select>



Este encontra-se num pop-up gerado pela página:

Código: Seleccionar todos
<script language="Javascript">
<!--   Begin
// Add the selected items in the parent by calling method of parent
function addSelectedItemsToParent() {
self.opener.addToParentList(window.document.forms[0].destList);
window.close();
}
// Fill the selcted item list with the items already present in parent.
function fillInitialDestList() {
var destList = window.document.forms[0].destList;
var srcList = self.opener.window.document.forms[0].parentList;
for (var count = destList.options.length - 1; count >= 0; count--) {
destList.options[count] = null;
}
for(var i = 0; i < srcList.options.length; i++) {
if (srcList.options[i] != null)
destList.options[i] = new Option(srcList.options[i].text);
   }
}
// Add the selected items from the source to destination list
function addSrcToDestList() {
destList = window.document.forms[0].destList;
srcList = window.document.forms[0].srcList;
var len = destList.length;
for(var i = 0; i < srcList.length; i++) {
if ((srcList.options[i] != null) && (srcList.options[i].selected)) {
//Check if this value already exist in the destList or not
//if not then add it otherwise do not add it.
var found = false;
for(var count = 0; count < len; count++) {
if (destList.options[count] != null) {
if (srcList.options[i].text == destList.options[count].text) {
found = true;
break;
      }
   }
}
if (found != true) {
destList.options[len] = new Option(srcList.options[i].text);
len++;
         }
      }
   }
}
// Deletes from the destination list.
function deleteFromDestList() {
var destList  = window.document.forms[0].destList;
var len = destList.options.length;
for(var i = (len-1); i >= 0; i--) {
if ((destList.options[i] != null) && (destList.options[i].selected == true)) {
destList.options[i] = null;
      }
   }
}
// End -->
</script>
pedrolm
Membro de Prata
Membro de Prata
 
Mensagens: 103
Registado: Quarta Mai 11, 2005 17:51

Mensagempor CoolMaster » Terça Set 18, 2007 10:46

destList.options[i] = new Option(srcList.options[i].text);

Assim a primeira vista falta-te o value ai
CoolMaster
Membro de Prata
Membro de Prata
 
Mensagens: 137
Registado: Segunda Dez 25, 2006 0:54
Localização: Porto

Mensagempor pedrolm » Terça Set 18, 2007 11:05

8O Fertei-me de alterar a linha e o resultado é sempre o mesmo independentemente do value, funciona no firefox, não funciona no IE... :?

Acho que vou ter que esperar que o people adopte todo o firefox :roll:
pedrolm
Membro de Prata
Membro de Prata
 
Mensagens: 103
Registado: Quarta Mai 11, 2005 17:51

Mensagempor pedrolm » Terça Set 18, 2007 13:54

Se coloco somente isto:

if (isset($_POST["parentList"]))
{
$parent=$_POST["parentList"];
echo($parent);
}

O echo escreve Array. Estou muito confuso... 8O
pedrolm
Membro de Prata
Membro de Prata
 
Mensagens: 103
Registado: Quarta Mai 11, 2005 17:51

Mensagempor pedrolm » Quinta Set 20, 2007 11:40

Bem finalmente, o problema estava no javascript e no modo como era interpretado pelo IE e Firefox.
Acrescentei um script para detectar o browser e troquei:

Código: Seleccionar todos
if (sourceList.options[i] != null)
destinationList.options[i] = new Option(sourceList.options[i].text, sourceList.options[i].value );

por:

Código: Seleccionar todos

var nome=navigator.appName
if (nome=="Microsoft Internet Explorer")
{
if (sourceList.options[i] != null)
destinationList.options[i] = new Option(sourceList.options[i].text, sourceList.options[i].option );
else{
if (sourceList.options[i] != null)
destinationList.options[i] = new Option(sourceList.options[i].text, sourceList.options[i].value );
   }}


[/u]
pedrolm
Membro de Prata
Membro de Prata
 
Mensagens: 103
Registado: Quarta Mai 11, 2005 17:51


Voltar para Programação

Quem está ligado:

Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante

cron