[RISOLTO]Impostare focus su textbox dopo foreach

Emix

Utente Attivo
15 Feb 2010
596
0
16
Salve a tutti,
ho la necessità di far tornare il cursore del mouse su una determinata textbox dopo finita una foreach...

Il codice php è questo :

PHP:
<table>
<tr>
<td><input type="text" placeholder="Barcode" name="barcodeart_new" id="barcodeart" size="10" value="" class="barcode"></td> 
<td><input type="submit" class="visto" name="visto" value=""></td><td>
<input type="submit" name="creapdf"  value="CREA DDT" class="creaddt"></td></tr></table>
<table>
<tr> 
<td><input type="text" size="10" value="BARCODE"></td> 
<td><input type="text" size="50" value="DESCRIZIONE"></td> 
<td><input type="text" style="text-align:center" size="3" value="QNT"></td> 
<td><input type="text" size="5" value="PREZZO" ></td> 
</table> 
<?php  
include('connect.php');  
if(isset($_POST['barcodeart_new']) && !empty($_POST['barcodeart_new']))
    $query = 'SELECT * FROM articoli WHERE Barcode=\''.mysql_real_escape_string($_POST['barcodeart_new']).'\'';    //se i barcode sono interi, si possono evitare gli apici \'
else if(isset($_POST['barcodeart_vecchi'])&& !empty($_POST['barcodeart_vecchi']))
    $query = 'SELECT * FROM articoli WHERE 0 ';    //il WHERE 0 è una bruttura... se non funziona, si può cercar di far di meglio

if(isset($_POST['barcodeart_vecchi']))
    foreach($_POST['barcodeart_vecchi'] as $barcode)
        $query .= ' OR Barcode=\''.mysql_real_escape_string($barcode).'\' ';    //se i barcode sono interi, si possono evitare gli apici \'
if(isset($query))    
    $result = mysql_query($query) or die('Query failed: ' . mysql_error() . "<br />");
?> 
<table> 
<?php
if(isset($result))
{
    while($righi=mysql_fetch_array($result))
$barcodeart[$righi['Barcode']] = array('Descrizione'=>$righi['Descrizione'], 'Vendita'=>$righi['Vendita'],'UM'=>$righi['UM'],'Quantita'=>$righi['Quantita'],'Fornitore'=>$righi['Fornitore'],'Codice'=>$righi['Codice']);    //creo un nuovo array dove salvo per ogni barcode, i dati.
$barcodeart_da_mostrare = array();
if(isset($_POST['barcodeart_vecchi']))
$barcodeart_da_mostrare = $_POST['barcodeart_vecchi'];    //metto gli elementi vecchi realmente mostrati
if(isset($_POST['barcodeart_new'])&& !empty($_POST['barcodeart_new'])){
 $query =mysql_query("SELECT * FROM articoli WHERE Barcode='".mysql_real_escape_string($_POST['barcodeart_new'])."'");  
    //se $esiste == 0 non cè
if(mysql_num_rows($query))//esiste
$barcodeart_da_mostrare[] = $_POST['barcodeart_new'];    //aggiungo quello nuovo (prima bisognerebbe far il controllo per vedere se esiste nel db)
?>
<script type="text/javascript">
$(document).ready(function() {
  $("barcodeart").focus();
});
</script>
<?php
}
foreach($barcodeart_da_mostrare as $k)
        echo '
		<table>
        <tr> 
        <td><input type="text" placeholder="Barcode" name="barcodeart_vecchi[]" id="barcodeart" size="10" value="'.$k.'"></td> 
        <td><input type="text" placeholder="Descrizione" name="descrizione[]" id="descrizione" size="50" value="'.$barcodeart[$k]['Descrizione'].'"></td> 
        <td><input type="text" style="text-align:center" placeholder="Qnt" name="quantita[]" id="quantita" size="3" value="1"></td> 
        <td><input type="text" placeholder="Prezzo" name="prezzo[]" id="prezzo" size="5" value="'.$barcodeart[$k]['Vendita'].'" ></td> 
				<td><input type="hidden" name="fornitore[]" id="fornitore" size="100" value="'.$barcodeart[$k]['Fornitore'].'"></td> 
        <td><input type="hidden" name="codice[]" id="codice" size="100" value="'.$barcodeart[$k]['Codice'].'"></td> 
		<td><input type="hidden" name="reparto[]" id="reparto" size="100" value="'.$barcodeart[$k]['Reparto'].'"></td> 
		<td><input type="hidden" name="UM[]" id="UM" size="100" value="'.$barcodeart[$k]['UM'].'"></td> 
        </tr></table> 
        ';
}
?>

Come potete vedere ho provato con :

Codice:
<script type="text/javascript">
$(document).ready(function() {
  $("barcodeart").focus();
});
</script>
Ma non va... Potete aiutarmi?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, manca il cancelletto # prima dell'id dell'input
Codice:
<script type="text/javascript">
$(document).ready(function() {
  $("#barcodeart").focus();
});
</script>
Naturalmente prima dev'essere inclusa la libreria jquery
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
Ciao, manca il cancelletto # prima dell'id dell'input
Codice:
<script type="text/javascript">
$(document).ready(function() {
  $("#barcodeart").focus();
});
</script>
Naturalmente prima dev'essere inclusa la libreria jquery

Ho provato ma non va... Il problema è che con l'id barcodeart ne ho molti... questo perchè quella casella serve per inserire e cercare dei prodotti in magazzino... <c'è un modo per selezionarne una diretta? a me serve solamente la prima, quella su cui inserisco il barcode e poi lo cerco in magazzino...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
per prima cosa non puoi assegnare lo stesso id a più di un elemento
devi trovare il modo di assegnare un id diverso ad ogni elemento
barcodeart_1
barcodeart_2
etc
poi puoi usare la stess sintassi indicando l'elemento che dovrà avere il focus
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
no il fatto è che quel barcode li viene poi inserito su una tabulazione... hai visto il codice scritto?
questa è la riga dell'input:
HTML:
<td><input type="text" placeholder="Barcode" name="barcodeart_new" id="barcodeart" size="10" value="" class="barcode"></td>

e questo è quello che succede dopo aver letto quel barcode:

PHP:
foreach($barcodeart_da_mostrare as $k)
        echo '
        <table>
        <tr> 
        <td><input type="text" placeholder="Barcode" name="barcodeart_vecchi[]" id="barcodeart" size="10" value="'.$k.'"></td> 
        <td><input type="text" placeholder="Descrizione" name="descrizione[]" id="descrizione" size="50" value="'.$barcodeart[$k]['Descrizione'].'"></td> 
        <td><input type="text" style="text-align:center" placeholder="Qnt" name="quantita[]" id="quantita" size="3" value="1"></td> 
        <td><input type="text" placeholder="Prezzo" name="prezzo[]" id="prezzo" size="5" value="'.$barcodeart[$k]['Vendita'].'" ></td> 
                <td><input type="hidden" name="fornitore[]" id="fornitore" size="100" value="'.$barcodeart[$k]['Fornitore'].'"></td> 
        <td><input type="hidden" name="codice[]" id="codice" size="100" value="'.$barcodeart[$k]['Codice'].'"></td> 
        <td><input type="hidden" name="reparto[]" id="reparto" size="100" value="'.$barcodeart[$k]['Reparto'].'"></td> 
        <td><input type="hidden" name="UM[]" id="UM" size="100" value="'.$barcodeart[$k]['UM'].'"></td> 
        </tr></table> 
        ';
}
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
devo ripetermi, non puoi assegnare lo stesso id a più di un elemento
PHP:
$i = 0;
foreach($barcodeart_da_mostrare as $k) {
    echo ' id="barcodeart_' . $i . '"';
    $i++;
}
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
La modifica nel ciclo php te l'ho appena postata
per dare il focus al primo elemento ti basta modificare il javascript cosi
HTML:
<script type="text/javascript">
$(document).ready(function() {
  $("#barcodeart_0").focus();
});
</script>
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
no aspetta... io uso barcodeart come input... da li partono le varie query.. alla fine delle query parte un foreach che si preoccupa di generare la tabella, nella quale l'id del barcode è barcodeart... O cambio l'id dell'input da barcodeart a barcodearticolo.. oppure cambio quello che genero.. a me non serve posizionarmi sull'ultima riga che inserisco, ma serve posizionarmi sull'input...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
sul primo input fuori dal ciclo?
allora cambia id a quello
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
praticamente a me serve che ogni volta che isnerisco un barcode e si genera la riga lui torni col cursore sull'input... come devo fare? dove piazzo la stringa java?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Tu vuoi che il cursore si riposizioni qui?
HTML:
<table>
<tr>
<td><input type="text" placeholder="Barcode" name="barcodeart_new" id="barcodeart" size="10" value="" class="barcode"></td>
visto che gli id in javascript devono essere univoci, lo cambi cosi
HTML:
<table>
<tr>
<td><input type="text" placeholder="Barcode" name="barcodeart_new" id="barcodeart_focus" size="10" value="" class="barcode"></td>
e il javascript lo modifichi cosi
Codice:
<script type="text/javascript">
$(document).ready(function() {
  $("#barcodeart_focus").focus();
});
</script>
non serve che sposti il codice devi solo assegnare degli id univoci
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
uhm.. non va... ho cambiato id ed ho messo l'id giusto anche nel codice java ma non va... riscrivo la pagina per intero...:

PHP:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<link href="grafica.css" rel="stylesheet" type="text/css">
<script type=”text/javascript” src=”http://code.jquery.com/jquery-latest.pack.js”></script>
</head> 
<body bgcolor="b89952">
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post"> 
<table>
<tr><td align="center"><img src="logo_gestionale.png" width="320" height="115" /></td></tr><tr><td height="20"></td></tr><tr><td height="50" align="center"><font size="+2"><b>...at work...</b></font></td></tr><tr><td height="20"></td></tr></table>
<table>
<tr>
<td><input type="text" placeholder="Barcode" name="barcodeart_new" id="barcodeart_focus" size="10" value="" class="barcode"></td> 
<td><input type="submit" class="visto" name="visto" value=""></td><td>
<input type="submit" name="creapdf"  value="CREA DDT" class="creaddt"></td></tr></table>
<table>
<tr> 
<td><input type="text" size="10" value="BARCODE"></td> 
<td><input type="text" size="50" value="DESCRIZIONE"></td> 
<td><input type="text" style="text-align:center" size="3" value="QNT"></td> 
<td><input type="text" size="5" value="PREZZO" ></td> 
</table> 
<?php  
include('connect.php');  
if(isset($_POST['barcodeart_new']) && !empty($_POST['barcodeart_new']))
    $query = 'SELECT * FROM articoli WHERE Barcode=\''.mysql_real_escape_string($_POST['barcodeart_new']).'\'';    //se i barcode sono interi, si possono evitare gli apici \'
else if(isset($_POST['barcodeart_vecchi'])&& !empty($_POST['barcodeart_vecchi']))
    $query = 'SELECT * FROM articoli WHERE 0 ';    //il WHERE 0 è una bruttura... se non funziona, si può cercar di far di meglio

if(isset($_POST['barcodeart_vecchi']))
    foreach($_POST['barcodeart_vecchi'] as $barcode)
        $query .= ' OR Barcode=\''.mysql_real_escape_string($barcode).'\' ';    //se i barcode sono interi, si possono evitare gli apici \'
if(isset($query))    
    $result = mysql_query($query) or die('Query failed: ' . mysql_error() . "<br />");
?> 
<table> 
<?php
if(isset($result))
{
    while($righi=mysql_fetch_array($result))
$barcodeart[$righi['Barcode']] = array('Descrizione'=>$righi['Descrizione'], 'Vendita'=>$righi['Vendita'],'UM'=>$righi['UM'],'Quantita'=>$righi['Quantita'],'Fornitore'=>$righi['Fornitore'],'Codice'=>$righi['Codice']);    //creo un nuovo array dove salvo per ogni barcode, i dati.
$barcodeart_da_mostrare = array();
if(isset($_POST['barcodeart_vecchi']))
$barcodeart_da_mostrare = $_POST['barcodeart_vecchi'];    //metto gli elementi vecchi realmente mostrati
if(isset($_POST['barcodeart_new'])&& !empty($_POST['barcodeart_new'])){
 $query =mysql_query("SELECT * FROM articoli WHERE Barcode='".mysql_real_escape_string($_POST['barcodeart_new'])."'");  
    //se $esiste == 0 non cè
if(mysql_num_rows($query))//esiste
$barcodeart_da_mostrare[] = $_POST['barcodeart_new'];    //aggiungo quello nuovo (prima bisognerebbe far il controllo per vedere se esiste nel db)
}
foreach($barcodeart_da_mostrare as $k)
        echo '
		<table>
        <tr> 
        <td><input type="text" placeholder="Barcode" name="barcodeart_vecchi[]" id="barcodeart" size="10" value="'.$k.'"></td> 
        <td><input type="text" placeholder="Descrizione" name="descrizione[]" id="descrizione" size="50" value="'.$barcodeart[$k]['Descrizione'].'"></td> 
        <td><input type="text" style="text-align:center" placeholder="Qnt" name="quantita[]" id="quantita" size="3" value="1"></td> 
        <td><input type="text" placeholder="Prezzo" name="prezzo[]" id="prezzo" size="5" value="'.$barcodeart[$k]['Vendita'].'" ></td> 
				<td><input type="hidden" name="fornitore[]" id="fornitore" size="100" value="'.$barcodeart[$k]['Fornitore'].'"></td> 
        <td><input type="hidden" name="codice[]" id="codice" size="100" value="'.$barcodeart[$k]['Codice'].'"></td> 
		<td><input type="hidden" name="reparto[]" id="reparto" size="100" value="'.$barcodeart[$k]['Reparto'].'"></td> 
		<td><input type="hidden" name="UM[]" id="UM" size="100" value="'.$barcodeart[$k]['UM'].'"></td> 
        </tr></table> 
        ';
				?>
<script type="text/javascript">
$(document).ready(function() {
  $("#barcodeart_focus").focus();
});
</script>
<?php
}
?>
<table align="left">
<tr><td>Seleziona la causale del DdT:</td><td><select name="causale" id="causale" >
   <option value="Option 1" selected></option>
   <option value="RESO">RESO  </option>
   <option value="RIAPRAZIONE">RIPARAZIONE</option>
   <option value="VENDITA">VENDITA</option>
   <option value="TRASFERIMENTO INTERNO">TRASFERIMENTO INTERNO</option>
</select></td></tr>
<tr><td>Inserisci il numero dei colli e l'aspetto:</td><td><input type="text" id="colli" name="colli" value="" size="40" /></td></tr>
<tr><td>Seleziona porto franco o porto assegnato:</td>
<td><select name="porto" id="porto" >
   <option value="Option 1" selected></option>
   <option value="ASSEGNATO" >ASSEGNATO</option>
   <option value="FRANCO">FRANCO</option>
  </select></td></tr>
  <tr><td>Seleziona il vettore:</td><td> <select name="vettore" id="vettore" >
  <option value="Option 1" selected></option>
   <option value="INTERNO">INTERNO  </option>
   <option value="A CARICO DESTINATARIO">CARICO DESTINATARIO</option>
   <option value="SDA">SDA</option>
  </select></td></tr>
<tr><td>Inserisci le eventuali note:</td><td><input type="text" id="note" name="note" value="NOTE:" size="40" /></td></tr>
</table>
<?php
echo $_SESSION['piva'];echo '<br>';
echo $_SESSION['id'];
echo $_SESSION['idsedi'];
?> 
</form>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</body> 
</html>
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
la stringa di jquery è giusta no? non capisco dove sbaglio...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
qui gli apici sono sbagliati
HTML:
<script type=”text/javascript” src=”http://code.jquery.com/jquery-latest.pack.js”></script>
devi usare quelli normali
HTML:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
il resto va bene, puoi anche spostare qeusto script nella head
HTML:
<script type="text/javascript">
    $(document).ready(function() {
        $("#barcodeart_focus").focus();
    });
</script>
Un consigli: installati firebug se usi firefox o abilita i messaggi di errore javascript su explorer
Ti aiuteranno ad individuare prima gli errori javascript
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
funziona tutto... sei un grande! ti ringrazio veramente per la tua pazienza... scusa per la stupidaggine commessa... Il bello è che uso firefox ed ho installato firebug hahaha ma non ci avevo fatto caso... Grazie ancora... Veramente!
 
Discussioni simili
Autore Titolo Forum Risposte Data
F [RISOLTO]js function per impostare minimo totale Javascript 8
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 6
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15

Discussioni simili