comportamento anomalo con IE 9 e 10

  • Creatore Discussione Creatore Discussione ans66
  • Data di inizio Data di inizio

ans66

Utente Attivo
27 Ago 2011
158
0
16
Nel disperato tentativo di scrivere un codice compatibile con tutti i browser, anche con IE, ho riscritto il mio codice da Jquery ad Ajax:

$.ajax ({

type: "POST",
url: "select2.php",
data: { //variabili POST da passare allo script
id: app,
id2: comeR
},
dataType: "html",
success: function(data)
{
$("#TipoSupporto").removeAttr("disabled");
$("#TipoSupporto").html(data);
} ,
error: function()
{
alert("malfunzionamento select TipoSupporto");
}

});

select2.php include un file php: select.class.php dove ci sono funzioni che popolano le Select.

Ho scritto diverse altre funzioni Ajax preposte a popolare le Select come quella sopra descritta.

In IE vers. 9 su Windows7 ho il seguente errore:

Dettagli errore pagina Web

Agente utente: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; Media Center PC 6.0; MASE; BRI/2)
Timestamp: Tue, 14 Oct 2014 06:03:43 UTC


Messaggio: Errore di sintassi
Linea: 1
Carattere: 1
Codice: 0
URI: http://www.cebora.it/ruote/pp1/database3/tabella5.php


Messaggio: Errore di sintassi
Linea: 1
Carattere: 1
Codice: 0
URI: http://www.cebora.it/ruote/pp1/database3/tabella5.php

Con IE 10 su Windows 8 invece per alcune delle select viene attivato il relativo alert di errore.

Tutto funziona perfettamente con IE 11, Google Chrome e Firefox.

Ho incluso:

<script src="jquery-1.11.1.js"></script>

Non so davvero più cosa fare

Grazie davvero per il vostro aiuto
 
Stavo riflettendo sul fatto che ho un altro script che utilizzo come contatore Record che funziona correttamente passando un valore tramite POST (anche con IE 10 e 11) e quindi sono arrivato alla conclusione che forse l'errore potrebbe essere nello script php chiamato da Ajax:

PHP:
<?php

include_once 'select.class.php';
$opt = new SelectList();

if(isset($_GET['id']))
{
	echo $opt->ShowSupporto();
  die;
} 

?>

public function ShowSupporto()
		{
			$sql = "SELECT supporto.idsup, supporto.supporto FROM supporto WHERE supporto.applicazioneid=".$_GET['id'];
      $sql = $sql." And supporto.comeruotaid =".$_GET['id2'];
			$res = $this->connDatabase($sql);
      
      if ($_GET['lng']=='it') { 
			$sup = '<option value="0">scegli...</option>';
                      } else 
                      { 
			$sup = '<option value="0">choose...</option>';
                      }
      
			
				while($row = mysql_fetch_array($res))
				{
					$sup .= '<option value="' . $row['supporto'] . '">' . $row['supporto'] . '</option>';
				}
				
			return $sup;
		}
 
Ciao, aggiungi l'apertura e la chiusura della select nella pagina chiamata.
Alcune versioni di IE restituiscono un errore javascript nel caso in cui l'html di risposta non sia sintatticamente corretto.
 
Criric,

Grazie davvero per la risposta.

Intendi dire che devo inserire:

<select name="nome" > .................</select> ?
 
Ultima modifica:
PHP:
$sup = "<select name='nome'>";

......

$sup .= "</select>";

return $sup;
 
Grazie ancora criric.

Cosa sto sbagliando in questo script che non mi popola la Select?

Codice:
public function ShowDiametro()
		{
$sql = "Select diametro.iddiametro, diametro.diametro From diametro Where diametro.applicazioneid =".$_POST['id'];
$sql = $sql." And diametro.comeruotaid =".$_POST['id2'];
$res = $this->connDatabase($sql);
      
      if ($_GET['lng']=='it') { 
$diametro ='<select id="Diametro" name="Diametro">';
$diametro .= '<option value="0">scegli...</option>';
                      } else 
      
$diametro ='<select id="Diametro" name="Diametro">';                { 
$diametro .= '<option value="0">choose...</option>';
                      }
      			
				while($row = mysql_fetch_array($res))
				{
$diametro .= '<option value="' . $row['diametro'] . '">' . $row['diametro'] . '</option>';
				}
      
$diametro .= '</select>';  
return $diametro;
		}
 
Ultima modifica:
La funzione sembra corretta, hai cambiato l'html?
non puoi più usare il tag <select> nella pagina chiamante : #TipoSupporto dovrà essere un div o uno span
 
criric,

Ho cambiato la select nella pagina chiamante con label (ho usato un piccolo trucco):

Codice:
$.ajax ({   
      
      type: "POST",
      url: "select.php",
      data: { //variabili POST  da passare allo script
                id: app,
                id2: comeR,
                lng: 'it'
            },
      dataType: "html",
      success: function(data)
      {
       $("#Diametro2").hide();
       $("#Diametro").removeAttr("disabled");
       $("#Diametro").html(data);
      } ,
      error: function()
      {
       alert("malfunzionamento select diametro");
      }
      
              });

HTML:
<td height="50">
               Diametro/Diameter: <label for="Diametro" id="Diametro" name="Diametro"> </label>
               <select id="Diametro2" name="Diametro2">  
               <option>Scegli...</option>
               </select> 
               
               
               </td>

sembra funzionare tutto bene (ho scelto label anziché div per evitare che la select venisse nella riga sotto).

Purtroppo devo aspettare domani per caricare tutto in rete e vedere se risolvo i problemi con IE.

Intanto un grandissimo grazie!!
 
Ciao criric,

Ho finalmente avuto la possibilità di caricare gli script sul server.

Ora IE funziona bene (ho potuto provare IE11 su Windows 7, in serata proverò anche IE 11 / 10 su Windows 8).

Purtroppo Google Chrome e Firefox non passano le variabili Post a ruote_email.php (ho provato sia con label for, span e div).

Segue script form:

PHP:
<?php
include_once 'select.class.php';
$opt = new SelectList();
?> 
 

<div class="contenitore_tabella">                                                     
    <table width="780" border="0">
    <form id="myForm" action="ruote_email.php" method="POST" >
          <thead>
      <tr>
              <th ><div align="right">Scegli la ruota che preferisci</div><th>/ Choose your favourite castor 
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
              Nr. Record:<label id="result"> </div>  
              </th></th>
            </tr>
        </thead>
          <tbody>
            

            
<!-- Ruota montata:   -->
            
            
                     
            
              <!-- Combo -->
              <tr>
              <tr>
              <td >
              Applicazione/Application: 
              <select id="applicazione" name="applicazione">
              <?php echo $opt->ShowApplicazioni('it'); ?>
              </select> 
              </td>
              
              <td >
              
                          
              Volvenza/Bearing: <div="volvenza" id="volvenza" > </div>
              <select id="volvenza2" name="volvenza2" disabled>
              <option>Scegli...</option>
			        </select>
              </td>
              
        </tr>   
              <td >
              <div >Come Ruota/How is the wheel?:
              <select id="comeRuota" name="comeRuota">
              <?php echo $opt->ShowComeRuota('it'); ?>
              </select></div>
              </td>
              
              <td>
              <div> Ruota/Wheel?:<div="TipoRuota" id="TipoRuota" > </div> 
              <select id="TipoRuota2" name="TipoRuota2" disabled>
              <option>Scegli...</option>
              </select></div>
              </td>
              
       </tr>
       
       <tr>
              <td height="50">
               Diametro/Diameter: <div="Diametro" id="Diametro" > </div>
               <select id="Diametro2" name="Diametro2" disabled>  
               <option>Scegli...</option>
               </select> 
               
               
               </td>
              
              <td height="50">
              Portata/Carrying Capacity: <div="Portata" id="Portata" > </div>
              <select id="Portata2" name="Portata2" disabled>
              <option>Scegli...</option>
              </select> 
              </td>
              
        </tr>
        <tr>
              
          
              <td height="50">
              Supporto/Housing: <div="TipoSupporto" id="TipoSupporto"> </div> 
              <select id="TipoSupporto2" name="TipoSupporto2" disabled>
              <option>Scegli...</option>
              </select>
              </td>
              
               
              
              <td >
              <div >Serie Supporti/Housing Series: <div="SerieSupporti" id="SerieSupporti"> </div>
              <select id="SerieSupporti2" name="SerieSupporti2" disabled>
              <option>Scegli...</option>
              </select></div>
              </td>
              
        </tr>
        <tr>
              <td height="50">
               Tipo Lamiera/Metal Sheet:<div="TipoLamiera" id="TipoLamiera"> </div>
                <select id="TipoLamiera2" name="TipoLamiera2"disabled>
                <option>Scegli...</option>
               </select>
              </td>
              
              <td height="50">
              
              </td>
              
        </tr>      
        <tr>
              <td >
              <div > Tipi Pavimenti/Which Floor?: <div="TipoPavimenti" id="TipoPavimenti"> </div>
              <select id="TipoPavimenti2" name="TipoPavimenti2" disabled>
              <option>Scegli...</option>
              </select></div>
              </td>
              
              <td height="50">
              <div align="left"><input type="submit" value="Invia/Submit" /></div>
              </td>
              
        </tr> 
        </th>         
            
          </tbody>
       
       </form>
       <td ></td><td style="vertical-align:bottom; text-align:center; ">Ricerca per codice:
       <?php include 'myinputbox.php'; ?> 
       </td>       
         
        
<!-- Modal -->
<div class="modal" id="modal-one" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-header">
      <h2>Non hai inserito il Codice</h2>
      <a href="#" class="btn-close" aria-hidden="true">!</a>
    </div>
    <div class="modal-body">
      <p>Codice non inserito!</p>
    </div>
    <div class="modal-footer">
      <a href="#" class="btn">|||</a>
    </div>
  </div>
</div>
<!-- /Modal -->



              
        </table>
        
  <p>&nbsp;</p>
</div>

Pensavo di cavarmela e arrivare in fondo alla questione da solo ma devo ancora chiedere il tuo aiuto. Grazie.

link per verificare comportamento: http://www.cebora.it/ruote/pp1/database3mod/tabella5.php
 
Ti consiglio di utilizzare l'estensione firebug di firefox
Ti segnala tutti gli errori della pagina
firebug.jpg
 
IE 11 su Windows 8, invece, mostra ancora dei problemi nel popolamento delle Select..mistero!
 
Stavo guardando gli errori sui picbox...sono chiamati da jquery 1.11., è corretto? se si dove trovo i picbox? Ho scaricato Jquery compresso e ho solo un unico file script e cioè jquery 1.11. In effetti tutti gli errori avvengono da chiamate di Jquery e non so bene come intervenire.

Volevo chiederti una cosa avendo nel form dei [div o span o label for] devo passare i valori tramite Jquery o tramite Form submit?

Se è giusto il primo caso come devo agire?
 
Ultima modifica:
Risolviamo un problema alla volta
nel sorgente pagina alla riga 1215 troviamo questo
HTML:
<script type="text/javascript" src="../js/picbox.js"></script>
il file non è li oppure non esiste
ps:
1700 righe di codice sono troppe per dieci select
 
Ultima modifica:
in locale sto rimuovendo su tutte le basi (corpo di ogni pagina) la riga in questione. Ho dovuto lavorare su pagine web già iniziate da altri e questo è il risultato. Purtroppo non sono in grado di aggiornare a server prima di domani.
 
l'importante è che fai un po di pulizia in locale, il server andrebbe aggiornato solo quando tutto funziona
 
ok sono d'accordo con te. Purtroppo però talvolta il comportamento in locale e su server è diverso.
 
<script type="text/javascript" src="../js/picbox.js"></script>....problema risolto! un aiutino su come postare con Jquery...io ho fatto qualche tentativo ma senza riuscirci
 
sto inserendo le modifiche Ajax nel codice postato negli scorsi giorni
nel contempo con ie11 ho provato il debug (F12) del codice html, ci sono alcuni tag mal posizionati
dovresti dare uno sguardo anche a loro
ciao
Marino
 

Discussioni simili