scorrimento all'interno database mysql riportando dati su form (tipo Dataset)

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

ans66

Utente Attivo
27 Ago 2011
158
0
16
Ciao a tutti,

Partendo dalla precedenza esperienza con il Cercaruota, ho pensato di modificare il mio form di Modifica, Inserimento, Ricerca, ecc in modo tale da renderlo più perfettamente funzionante rispetto a quello fatto in precedenza.

Ho cercato di trovare un metodo per passare attraverso la stringa data i valori dei campi record in modo tale che potessi successivamente splittare la stringa ricavando un Array con i singoli valori campi da inserire poi sui corrispettivi tag del form.

Qui nasce la prima domanda: esiste un approccio migliore...ho visto json_encode che potrebbe fare al mio caso ma lo trovo abbastanza ostico da gestire poi in javascript.

A questo punto passo al codice:

PHP:
<form id="myForm" action="tabellamod.php" method="POST" > 
    <table width="400" border="0">
   
          <thead>
      <tr>
              <th ><div align="left">Login Modifica</div></th>
            </tr>
        </thead>
          <tbody>
      <tr>      
              <!-- Combo -->
              <td >
              <label for="utente">Utente:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label> 
              <input type="text" id="utente" name="utente" maxlength="35" size="25" value="" />
              </td>
              
                           
      </tr> 
      <tr>  
              <td >
              <label for="password">Password:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label> 
              <input type="password" id="passw" name="passw"  maxlength="35" size="25" value="" />
              </td>
              
                           
       </tr>
       <tr>
            <td>
              Modifica/Inserimento: 
              <select id="dove" name="dove" >
              <option value="0">scegli...</option>
              <option value="1">tabellains.php</option>
              <option value="2">tabellamod.php</option>
              </select>
              
            </td>
       </tr> 
       <tr>
              
              <td height="50">
        
        <div align="left" id="dt"> <input type="hidden" id="hid" name="hid" value=""  /> </div>      
        <div align="right"><input type="submit" id="btn" name="btn" value="Elabora Dati"  /></div> 
        
              </td>
              
        </tr>           
            
          </tbody>
          
          
       
            
        </table>
      </form>

Codice:
$(document).ready(function(){




$("select#dove").val(0);
$("select#dove").change(function(){ Tabelle() });   

function Tabelle() 
	{
  
  

var ut =document.getElementById('utente').value;
var psw =document.getElementById('passw').value;


var dove	= $("select#dove option:selected").attr('value');
var frm = document.getElementById('myForm');



   if (ut=='' ||	psw=='' ) { alert("Utente o Password non valida!"); window.location.href = "modifica.php"; return false; }
   else if (dove==0){ alert("Non hai scelto la tabella da caricare!"); window.location.href = "modifica.php"; return false; }
   else 
   { 
   var nr=-1;
   
   if (dove==1){  frm.action="tabellains.php"; nr=-1;}   // valore nr indica per me ultimo record per tab ins
   else if (dove==2) { frm.action="tabellamod.php"; nr=0;  } // valore nr che indica primo rec - tab modif
   


   
   
    $.ajax ({   
				type: "POST",
				url: "conn.php",
        data: 
      {
				ut	: ut,
				psw	: psw,
				nrR	: nr  
			},
				dataType: "html",
				success: function(data)
				{
       $("#hid").val(data);
        },
				error: function() { alert("malfunzionamento conn.php"); }
			});
   
   
  
  }
  

 
 }

passo la stringa debitamente formattata per lo splittamento al tag #hid (hidden) in modo tale che possa essere poi passato post al form tabellamod.php o tabellains.php (non ho esigenze di compatibilità con browser differenti in questo caso).

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

if(empty($_POST['passw'])) header( 'Location: modifica.php' );  
else
{  
extract($_POST, EXTR_OVERWRITE);
if(!empty($hid)) $Arr=explode("***", $hid);
}
                          
                         
?>





    <table width="970" border="0">
    <form id="myForm" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="POST"  >
          <thead>
      <tr>
              <th >
      <div align="right">Modifica il Record  </div><th><div div align="left"> / Modify the Record</div>
       
      
      </th></th>
      </tr>
        </thead>
          <tbody>
            
              <!-- Combo -->
              <tr>
              <td >
              Codice Meccanografico: <input type="text" name="codice" id="codice" value="<?php if (!empty($Arr[0])) echo $Arr[0]; ?>" size="20" />
              </td>
              <td >
              Descrizione: <input type="text" name="descrizione" id="descrizione" value="<?php if (!empty($Arr[1])) echo $Arr[1];  ?>" size="50" />
              </td>
              </tr>
              <tr>
              <td >
              Altezza Supporto: <input type="text" name="altezza" id="altezza" value="<?php if (!empty($Arr[8])) echo $Arr[8];  ?>" size="10" />
              </td>
              <td >
              Disassamento: <input type="text" name="disassamento" id="disassamento" value="<?php if (!empty($Arr[9])) echo $Arr[9];  ?>" size="10"  />
              </td>
              </tr>
              <tr>
              <td >
              Dimensioni Piastra: <input type="text" name="dimpiastra" id="dimpiastra" value="<?php if (!empty($Arr[10])) echo $Arr[10];  ?>" size="10" />
              </td>
              <td >
              Interassi foro: <input type="text" name="intforo" id="intforo" value="<?php if (!empty($Arr[11])) echo $Arr[11]; ?>" size="10" />
              </td>
              </tr>
              <tr>
              <td >
              Spessore Piastra: <input type="text" name="spespiastra" id="spespiastra" value="<?php if (!empty($Arr[12])) echo $Arr[12]; ?>" size="10" />
              </td>
              <td >
              Freno: <input type="checkbox" id="freno" name="freno" value="" <?php if ($Arr[17]==1) echo 'checked';  ?>  />
              </td>
              </tr>
              <tr>
              <td >
              Spessore Forca: <input type="text" name="spesforca" id="spesforca" value="<?php if (!empty($Arr[14])) echo $Arr[14];  ?>" size="10" />
              </td>
              <td >
              Larghezza Forca: <input type="text" name="largforca" id="largforca" value="<?php if (!empty($Arr[13])) echo $Arr[13];  ?>" size="10"  />
              </td>
              </tr>
              <tr>
              <td >
              Foro centrale: <input type="text" name="forocen" id="forocen" value="<?php if (!empty($Arr[15])) echo $Arr[15]; ?>" size="10" />
              </td>
              <td >
              Foro asse: <input type="text" name="foroasse" id="foroasse" value="<?php if (!empty($Arr[16])) echo $Arr[16];  ?>" size="10"  />
              </td>
              </tr>
              <tr>
              <td >
              Applicazione/Application: 
              <select id="applicazione" name="applicazione" >
              <?php 
              $idAp=0;
              if ($Arr2=1) $idAp=2;
              else if ($Arr[2]=0) $idAp=1; 
              echo $opt->ShowApplicazioni($Arr[2]);  
              ?>
              </select>
              </td>
              <td >
              <?php
                     $idComeR=0;
                     if ($Arr[5]!='' && $Arr[18]!='') $idComeR=3;  
                     else if ($Arr[5]=='' && $Arr[18]!='') $idComeR=1;  
                     else if ($Arr[5]!='' && $Arr[18]=='') $idComeR=2;
              ?>
              Volvenza/Bearing: 
              <select id="volvenza" name="volvenza">
              <?php echo $opt->ShowVolvenza($idAp, $idComeR, $Arr[19]);  ?>
              </select>
              </td>
              </tr>
              <tr>   
              <td >
              Come Ruota/How is the wheel?:
              <select id="comeRuota" name="comeRuota" >
              <?php  
                     echo $opt->ShowComeRuota($idComeR); 
              ?>
                     
              </select>
              </td>
              
              <td>
              Ruota/Wheel?:
              <select id="TipoRuota" name="TipoRuota">
              <?php echo $opt->ShowRuota($idAp, $idComeR, $Arr[18]);  ?>
              </select>
              </td>
              </tr>
       
              <tr>
              <td height="50">
              Diametro/Diameter:
              <select id="Diametro" name="Diametro">
              <?php echo $opt->ShowDiametro($idAp, $idComeR, $Arr[3]);  ?>   
               </td>
              
              <td height="50">
              Portata/Carrying Capacity:
              <select id="Portata" name="Portata">
              <?php echo $opt->ShowPortata($idAp, $idComeR, $Arr[4]);  ?> 
              </select>  
              </td>
              
              </tr>
              <tr>
              
          
              <td height="50">
              Supporto/Housing:
              <select id="TipoSupporto" name="TipoSupporto">
              <?php echo $opt->ShowSupporto($idAp, $idComeR, $Arr[7]);  ?>
              </select>
              </td>
              
               
              
              <td >
              Serie Supporti/Housing Series:
              <select id="SerieSupporti" name="SerieSupporti">
              <?php echo $opt->ShowSerieSup($idAp, $idComeR, $Arr[5]);  ?>
              </select>
              </td>
              
              </tr>
        <tr>
              <td height="50">
              Tipo Lamiera/Metal Sheet:
              <select id="TipoLamiera" name="TipoLamiera">
              <?php echo $opt->ShowLamiera($idAp, $idComeR, $Arr[6]);  ?>      
              </select>
              </td>
              
              <td height="50">
              Tipi Pavimenti/Which Floor?:
              <select id="TipoPavimenti" name="TipoPavimenti">
              
              <?php 
              if ($Arr[20]=='PavimentoPiastrelle') $Arr[20]='Piastrelle/Tile';
              else $Arr[20]='Tutti i Pavimenti/All Floors';  
              echo $opt->ShowPavimenti($idAp, $idComeR, $Arr[20] );  ?>            
              </select>
              </td>
              
        </tr>      
        <tr>
        <td >
              Link foto: <input type="text" name="linkfoto" id="linkfoto" value="<?php if (!empty($Arr[21])) echo $Arr[21];  ?>" size="50" />
        </td>
        <td >
              Link note: <input type="text" name="linknote" id="linknote" value="<?php if (!empty($Arr[22])) echo $Arr[22]; ?>" size="50" />
        </td>
        </tr>
        <tr>
              <td >
              Link PDF: <input type="text" name="linkpdf" id="linkpdf" value="<?php if (!empty($Arr[23])) echo $Arr[23];  ?>" size="50" />
              </td>
              <td >
              Link DWG: <input type="text" name="linkdwg" id="linkdwg" value="<?php if (!empty($Arr[24])) echo $Arr[24];  ?>" size="50" />
              </td>
        </tr>
        <tr>           
              <td >
              Link Altro disegno: <input type="text" name="linkdis3" id="linkdis3" value="<?php if (!empty($Arr[25])) echo $Arr[25];  ?>" size="50" />
              </td>
              <td >
              Link Altro disegno: <input type="text" name="linkdis4" id="linkdis4" value="<?php if (!empty($Arr[26])) echo $Arr[26];  ?>" size="50" />
              </td>
       </tr> 
       <tr>
              <td >
              Link al Sito Web: <input type="text" name="linkweb" id="linkweb" value="<?php if (!empty($Arr[27])) echo $Arr[27];  ?>" size="60" />
              </td> 
              
              <td >
              <input type="hidden" name="ut" id="ut" value="<?php if (!empty($utente)) echo $utente;  ?>" />
              <input type="hidden" name="ps" id="ps" value="<?php if (!empty($passw)) echo $passw;  ?>" />
              </td >
              
          <tr>
              <td > 
              <div align="right"><input type="submit" id="primo" nome="primo" value="<<"  /><input type="submit" id="indietro" nome="indietro" value="<" /></div>
              <div align="right">Nr. Rec.:   <input type="text" id="nrRec" name="nrRec" class="resizedTextbox" readonly value="1"   /></div>
              <div style="text-align: left" /><img src="./img/delete.png" style="visibility: hidden;"  width="30" visible="false" /></div>
              </td> 
              
              <td height="50">
              <div align="left"><input type="submit" id="avanti" nome="avanti" value=">" /><input type="submit" id="ultimo" name="ultimo" value=">>"  />
              <div align="left"><input type="text" id="totRec" name="totRec" readonly value="<?php if (!empty($Arr[28])) echo $Arr[28];  ?>" class="resizedTextbox2"  />   Totale Rec.:</div>
              <div style="text-align: right" >
              <input type="image" src="./img/delete.png" id="del" title="cancella" width="30"  />
              
              <input type="image" src="./img/update.png" title="aggiorna" width="30"  />
              <input type="image" src="./img/lente.png" id="cerca" nome="cerca" title="cerca" width="30" />
              </div>
              </td>
              
        </tr>
        <tr>   
          
          </tbody>
       
       </form>
        </table>
        
  <p>&nbsp;</p>
</div>

Codice:
$(document).ready(function(){
var ut = $("#ut").val();
var psw = $("#ps").val();

$("#primo").click(function(){ Primo() });
$("#ultimo").click(function(){ Ultimo() });
$("#avanti").click(function(){ Avanti() });
$("#indietro").click(function(){ Indietro() });
$("#cerca").click(function(){ Cerca() });

$( "#myForm" ).submit(function( event ) {
  
  event.preventDefault();
})


function Cerca() 
	{
  
   var risp=prompt("Parola da cercare?","scegli:"); 
   
  
  if (risp==null || risp=="") alert("non hai digitato nulla!"); 
  else 
  
  CaricaDB(ut, psw, risp);  
   }

function Indietro() 
	{
  var nr=parseInt($( ".resizedTextbox" ).val());
  var parag=nr;
  parag-=1;
    
  if (parag>=1)
  nr-=1;
  CaricaDB(ut, psw, nr-1);
  
  $( ".resizedTextbox" ).val(nr.toString());
  }

function Avanti() 
	{
  var ultrec=$( ".resizedTextbox2" ).val();
  var nr=parseInt($( ".resizedTextbox" ).val());
  var parag=nr;
  parag+=1;
    
  if (parag<=ultrec)
  nr+=1;
  CaricaDB(ut, psw, nr-1);
  
  $( ".resizedTextbox" ).val(nr.toString());
  }

function Primo() 
	{
  CaricaDB(ut, psw, '0');
  $( ".resizedTextbox" ).val('1');
  }

function Ultimo() 
	{
   var ultrec=parseInt($( ".resizedTextbox2" ).val());
   CaricaDB(ut, psw, ultrec-1);
   
   $( ".resizedTextbox" ).val(ultrec); 
  }
  

function CaricaDB(ut, psw, fl ) 
	{
  
    
  $.ajax ({   
				type: "POST",
				url: "conn.php",
        data: 
      {
				ut	: ut,
				psw	: psw,
				nrR	: fl  
			},
				dataType: "html",
				success: function(data)
				{
        InTextbox(data);
        },
				error: function() { alert("malfunzionamento conn.php"); }
			});
  
  }





function InTextbox(st) 
	{

var app; 
var res = st.split('***'); 
var ComeR;

// Serie Supporti vuota e TipoRuota non vuota = Solo Ruota
if (res[5]=='' && res[18]!='') ComeR=1;
// Serie Supporti non vuota e TipoRuota vuota = Solo Supporto
else if (res[5]!='' && res[18]=='') ComeR=2;
// Serie Supporti non vuota e TipoRuota non vuota = Ruota Montata
else if (res[5]!='' && res[18]!='') ComeR=3; 

if (res[2]==1) { app=2; } else { app=1; }

 
    
  for (var i = 0; i < res.length; i++) {
   
  switch(i){
case 0:
$("#codice").val(res[i]);
break
case 1:
$("#descrizione").val(res[i]);
break
case 2:
$("select#applicazione").val(app);
break
case 3:
loadXMLDoc("Diametro","Diametro",app,ComeR,res[i]);
break
case 4:
loadXMLDoc("Portata","Portata",app,ComeR,res[i]);
break
case 5:
loadXMLDoc("SerieSupporti","SerieSup",app,ComeR,res[i]);
break
case 6:
loadXMLDoc("TipoLamiera","Lamiera",app,ComeR,res[i]);
break
case 7:
loadXMLDoc("TipoSupporto","Supporto",app,ComeR,res[i]);
break 
case 8:
$("#altezza").val(res[i]);
break
case 9:
$("#disassamento").val(res[i]);
break
case 10:
$("#dimpiastra").val(res[i]);
break
case 11:
$("#intforo").val(res[i]);
break 
case 12:
$("#spespiastra").val(res[i]);
break
case 13:
$("#largforca").val(res[i]);
break
case 14:
$("#spesforca").val(res[i]);
break
case 15:
$("#forocen").val(res[i]);
break 
case 16:
$("#foroasse").val(res[i]);
break
case 17:
$("#freno").prop("checked", res[i]);
break
case 18:
res[i]=res[i].trim();
loadXMLDoc("TipoRuota","Ruota",app,ComeR,res[i]);
break
case 19:
loadXMLDoc("volvenza","volvenza",app,ComeR,res[i]);
break
case 20:
// converto TipoPavimenti per Verfica con Form
if (res[i]=='PavimentoPiastrelle') res[i]='Piastrelle/Tile';
else res[i]='Tutti i Pavimenti/All Floors'; 
loadXMLDoc("TipoPavimenti","Pavimenti",app,ComeR,res[i]);
break
case 21:
$("#linkfoto").val(res[i]);
break
case 22:
$("#linknote").val(res[i]);
break
case 23:
$("#linkpdf").val(res[i]);
break 
case 24:
$("#linkdwg").val(res[i]);
break
case 25:
$("#linkdis3").val(res[i]);
break
case 26:
$("#linkdis4").val(res[i]);
break 
case 27:
$("#linkweb").val(res[i]);
break



           }
                                        }
  
  
 
  
  }


  
                                      
function loadXMLDoc(form_tag, funzione, applic, comeR,inText)
	{
		var xURL = "characteristics.php?funzione="+funzione+"&id="+applic+"&id2="+comeR+"&inText="+inText;
    

		var attendere	= '<option value="-1">Attendere...</option>';

		$("select#"+form_tag).html(attendere);
		$("select#"+form_tag).attr("disabled", "disabled");

		GetData("select#"+form_tag, xURL);
		return;
	}

function GetData(form_tag, xURL)
	{
	
   var xmlhttp=false;

			if (!xmlhttp && typeof XMLHttpRequest!='undefined')
			{
				try { xmlhttp = new XMLHttpRequest(); }
				catch (e) { xmlhttp = false; }
			}
			if (!xmlhttp && window.createRequest)
			{
				try { xmlhttp = window.createRequest(); }
				catch (e) { xmlhttp = false; }
			}

			xmlhttp.onreadystatechange=function()
			{
				if (xmlhttp.readyState===4 && xmlhttp.status===200)
				{
					data = xmlhttp.responseText;
          SetValues(form_tag, data);
				}
			}
			xmlhttp.open("GET", xURL, true);
			xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
			xmlhttp.send(null);
      
      return	
    
	}
    
function SetValues(form_tag, data)
	{
      
      $(form_tag).removeAttr("disabled");

			var n1 = data.indexOf("<option");
      var n2 = data.indexOf("</select>");
      data = data.substring(n1, n2);
    
    $(form_tag).html(data);
    return
	}  
  
});

poi alcune delle funzioni contenute nel file Select.class.php:

PHP:
<?php
 
class SelectList
{

  
  function MieQuery($qualiQuery, $risp='')
  {

// view come da suggerimento di Marino
$SelTrova="SELECT codice, descrizione, industriale, diametro, portata, seriesupporti, ";
$SelTrova.="tipolamiera, tiposupporto, altezza, disassamento, dimensionipiastra, interassiforo, ";
$SelTrova.="spessorepiastra,larghezzaforca,spessoreforca,forocentrale, foroasse, freno, tiporuota, ";
$SelTrova.="volvenza, tipopavimenti, linkfoto, linknote, linkpdf, linkdwg, linkdisegno3, linkdisegno4, ";
$SelTrova.="LinkWeb FROM tabellamod";

$SelCerca=$SelTrova;

//$SelTrova2=" Order By trovaruota.codice";
$SelTrova2=" Order By codice";

$SelTrova=$SelTrova.$SelTrova2;

$SelCount="SELECT count(*) FROM trovaruota";


$SelCerca.=" Where (trovaruota.codice Like '%".$risp."%') Or ";
$SelCerca.="(trovaruota.descrizione Like '%".$risp."%') Or (diametro.diametro Like '%".$risp."%') Or ";
$SelCerca.="(portata.portata Like '%".$risp."%') Or (seriesupporti.seriesupporti Like '%".$risp."%') Or ";
$SelCerca.="(tipolamiera.tipolamiera Like '%".$risp."%') Or (tiposupporto.tiposupporto Like '%".$risp."%') Or ";
$SelCerca.="(dimensionesupporto.dimensionipiastra Like '%".$risp."%') Or (dimensionesupporto.interassiforo Like '%".$risp."%') Or ";
$SelCerca.="(tiporuota.tiporuota Like '%".$risp."%') Or (volvenza.volvenza Like '%".$risp."%') Or ";
$SelCerca.="(tipopavimenti.tipopavimenti Like '%".$risp."%')";
$SelCerca.=$SelTrova2;
  
  switch ($qualiQuery) {
    case 1:
        return $SelTrova;
        break;
    case 2:
        return $SelCount;
        break;
    case 3:
        return $SelCerca;
        break;
    
// poi ci sarà anche select ultimo record per tabella inserimento
    
    default:
        return $SelTrova;
} 
  
  } 


public function ShowRuota ($idApp, $idcomeR, $ruota)
  {
       
    $options = '<select id="TipoRuota" name="TipoRuota">';       
    $options= $this->OptionZero();

    $sql = "SELECT * FROM tiporuota ";  
    $sql.= "WHERE applicazioneid =".$idApp." AND comeruotaid =".$idcomeR;

    $res = $this->connDatabaseForm($sql);
    while($row = mysql_fetch_array($res))
      if ($ruota==$row['tiporuota']) 
      $options.= '<option value="' . $row['ruotacercaid'] . '" selected="selected" >' . $row['tiporuota'] . '</option>';  
      else  
      $options.= '<option value="' . $row['ruotacercaid'] . '">' . $row['tiporuota'] . '</option>';
      
      $options.= '</select>'; 
    
    return $options;   
  }

Seconda domanda: succede un problema strano che non sono riuscito a risolvere e cioè nella Select Ruota ho il Select Text giusto per ogni Record che scorro fatto salvo per il Select Text "Nylon+Poliuretano/PA+PU Wheels". Ho provato con trim($ruota) e trim($row['tiporuota']). Ho provato con if (strcasecmp($ruota, $row['tiporuota']) == 0) anzichè if ($ruota==$row['tiporuota']) ma niente! Nella Select Text ho il valore zero "scegli...." solo nel caso di Select Text = "Nylon+Poliuretano/PA+PU Wheels".

Disponibile ovviamente ad inviare la View e il db Form con tabella tiporuota
 
potesti postare conn.php, giusto per capire cosa fa
ciao
Marino
HTML:
$.ajax ({   
	type: "POST",
	url: "conn.php",
        data: 
      {
		ut	: ut,
 
potesti postare conn.php, giusto per capire cosa fa
ciao
Marino
HTML:
$.ajax ({   
	type: "POST",
	url: "conn.php",
        data: 
      {
		ut	: ut,

conn.php:
PHP:
<?php


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

if(empty($_POST)) $data = "0";  
else
{ 
extract($_POST, EXTR_OVERWRITE);

$data= $opt->connDatabase($ut, $psw, $nrR);

}

echo $data;
?>

PHP:
public function connDatabase($ut,$psw, $qualeR)
  { 

$db = "cercaruota";
$query='';
$darit='';
$NrR=0;

// ho aggiunto nello script "risp:" nella risposta Cerca perchè sia sempre non numeric
if (!is_numeric($qualeR)) { $qualeR=substr($qualeR,5);   $query = $this->MieQuery(3,$qualeR);  }  
else {

if ($qualeR > 0) { $query = $this->MieQuery(1); $NrR=$qualeR; }
else if ($qualeR == 0) { $query = $this->MieQuery(1); }
else if ($qualeR == -1) { $query = $this->MieQuery(-1); }


    }

$link = mysql_connect("localhost", $ut, $psw);    

    if (!$link)
      die('connessione a Mysql non riuscita!: ' . mysql_error());
    else 
    {
      $db_selected =mysql_select_db($db,$link);	//connessione a database
      if (!$db_selected)
        die('connessione al database non riuscita!: ' . mysql_error());
      else
      { 
        $res = mysql_query($query,$link) or die(mysql_error()." ".$query);	
        
        while($row = mysql_fetch_assoc($res, MYSQL_NUM))
        $dataset[] = $row;
        
        $i = 0;
        while ($i <= 27) {
        
        if (!empty($dataset[$NrR][$i])) $darit.= trim($dataset[$NrR][$i]).'***';
        else $darit.=' ***';
        
        $i++;
        
                         }
                         
        
        //if ($qualeR=='tabellamod.php') { $nrR=mysql_num_rows ( $res ); $darit.=$nrR;  }
        $nrR=mysql_num_rows ( $res ); 
        $darit.=$nrR;
        
           
        return $darit; 
        
        
               

      }
    }
    
     

  }

PHP:
function MieQuery($qualiQuery, $risp='')
  {

 // View come da suggerimento di Marino
$SelTrova="SELECT codice, descrizione, industriale, diametro, portata, seriesupporti, ";
$SelTrova.="tipolamiera, tiposupporto, altezza, disassamento, dimensionipiastra, interassiforo, ";
$SelTrova.="spessorepiastra,larghezzaforca,spessoreforca,forocentrale, foroasse, freno, tiporuota, ";
$SelTrova.="volvenza, tipopavimenti, linkfoto, linknote, linkpdf, linkdwg, linkdisegno3, linkdisegno4, ";
$SelTrova.="LinkWeb FROM tabellamod"; 

$SelCerca=$SelTrova;

//$SelTrova2=" Order By trovaruota.codice";
$SelTrova2=" Order By codice";

$SelTrova=$SelTrova.$SelTrova2;
$selLastRec= $SelTrova." Desc Limit 1";


$SelCount="SELECT count(*) FROM trovaruota";


$SelCerca.=" Where (codice Like '%".$risp."%') Or ";
$SelCerca.="(descrizione Like '%".$risp."%') Or (diametro Like '%".$risp."%') Or ";
$SelCerca.="(portata Like '%".$risp."%') Or (seriesupporti Like '%".$risp."%') Or ";
$SelCerca.="(tipolamiera Like '%".$risp."%') Or (tiposupporto Like '%".$risp."%') Or ";
$SelCerca.="(dimensionipiastra Like '%".$risp."%') Or (interassiforo Like '%".$risp."%') Or ";
$SelCerca.="(tiporuota Like '%".$risp."%') Or (volvenza Like '%".$risp."%') Or ";
$SelCerca.="(tipopavimenti Like '%".$risp."%')";
$SelCerca.=$SelTrova2;
  
  switch ($qualiQuery) {
    case 1:
        return $SelTrova;
        break;
    case 2:
        return $SelCount;
        break;
    case 3:
        return $SelCerca;
        break;
    case -1:
        return $selLastRec;
    default:
        return $SelTrova;
} 
  
  }

Ciao Marino,

in rete ho trovato qualche cosa che potrebbe fare al mio caso ma che non ho ancora potuto provare:

Codice:
$.ajax({
        type: 'POST',
        url: "conn.php",
        data: {
            ut: ut,
            psw: psw,
            nrR: fl
        },
        dataType: "json",
        success: function (data) {
            var rit = JSON.parse(data); // data array.
        },
        error: function() { alert("malfunzionamento conn.php"); }
    });

lato php:

file select.class.php - function connDatabase
PHP:
while($row = mysql_fetch_assoc($res, MYSQL_NUM))
$dataset[] = $row;
return json_encode($dataset[]);

il metodo che ho trovato per passare una stringa da splittare oltre ad essere un po' farraginoso, diventerà anche difficile da gestire quando sarò costretto a passare più record (esempio: funzione Cerca nello script tabellamod).

Grazie. Ciao Marino
 
vorrei fare un aggiornamento visto che credo di aver fatto un passo avanti (ho verificato il passaggio dell'array da select.class.php allo script modifica.js (login iniziale):

PHP:
 while($row = mysql_fetch_assoc($res, MYSQL_NUM))
        $dataset[] = $row;
        return json_encode($dataset);

Codice:
$.ajax({
        type: 'POST',
        url: "conn.php",
        data: {
            ut: ut,
            psw: psw,
            nrR: nr
        },
        dataType: "json",
        success: function (data) {
            $("#hid").val(data);
        },
        error: function() { alert("malfunzionamento conn.php"); }
    });

quello che non riuscivo a comprendere è che il valore passato allo script è già json e per tale motivo è già oggetto (Array multidimensionale). Ho provato a trovare un valore per verifica con alert(data[0][0]); e funziona. Ho verificato anche il passaggio dal tag input hidden al form tabellamod.php (form scorrimento dati) e funziona. Credo di essere sulla strada giusta.
 
considera che preparo le array in questo modo, in php, (obbligato a specificare il tipo)
PHP:
$SPW_xAxisCat[] = (string)$data[$i][0];
$SPW_y2data[]   = (float)$data[$i][1];
$SPW_y1data[]   = (float)round($data[$i][2], 1, PHP_ROUND_HALF_UP);
$SPW_y3data[]   = (float)round($Efficiency,  1, PHP_ROUND_HALF_UP);
poi le passo a js in questo modo
PHP:
var SPW_xAxisCat = <?php echo json_encode($SPW_xAxisCat); ?>;
var SPW_y0data   = <?php echo json_encode($SPW_y1data); ?>;
var SPW_y1data   = <?php echo json_encode($SPW_y2data); ?>;
var SPW_y2data   = <?php echo json_encode($SPW_y3data); ?>;
ciao
Marino
 
Ciao Marino,

Se ho capito bene passi un array per ogni campo con genere (stringa, float, ecc). Come fare però a gestire una cosa del genere con return (vedi mio esempio sopra)?
 

Discussioni simili