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
por 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

-
- Mensagens: 103
- Registado: Quarta Mai 11, 2005 17:51
por 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

-
- Mensagens: 103
- Registado: Quarta Mai 11, 2005 17:51
por CoolMaster » Segunda Set 17, 2007 17:06
Experimenta mudar o nome do id...
-
CoolMaster
- Membro de Prata

-
- Mensagens: 137
- Registado: Segunda Dez 25, 2006 0:54
- Localização: Porto
-
por 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

-
- Mensagens: 103
- Registado: Quarta Mai 11, 2005 17:51
por 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

-
- Mensagens: 137
- Registado: Segunda Dez 25, 2006 0:54
- Localização: Porto
-
por 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

-
- Mensagens: 103
- Registado: Quarta Mai 11, 2005 17:51
por 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

-
- Mensagens: 137
- Registado: Segunda Dez 25, 2006 0:54
- Localização: Porto
-
por 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

-
- Mensagens: 103
- Registado: Quarta Mai 11, 2005 17:51
por 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

-
- Mensagens: 137
- Registado: Segunda Dez 25, 2006 0:54
- Localização: Porto
-
por 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...

-
pedrolm
- Membro de Prata

-
- Mensagens: 103
- Registado: Quarta Mai 11, 2005 17:51
por 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

-
- 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