Form ricerca valori e visualizzazione risultato ricerca

Nicola72

Nuovo Utente
18 Gen 2015
3
0
0
Salve a tutti, ho un problema con jquery che non conosco ancora bene purtroppo.

Devo utilizzare un form con 2 campi: uno per fare la ricerca in un database di prodotti con il plugin ui autocomplete e un secondo campo di tipo textarea per visualizzare l'esito della ricerca.

Nel primo caso ho risolto subito, difatti non ho avuto difficoltà ad implementare il plugin uiautocomplete, nel secono caso ho delle difficoltà: voglio fare in modo tale che inserendo il codice del prodotto (il Serial Number), nel campo testo, automaticamente tramite l'evento onchange su quest ultimo, venga caricata una funzione, la quale richiama un file in php che esegua una query in grado di restituire il genere (ad es. cellulare), la marca ed il modello relativi al codice prodotto che è stato inserito.

--------------------------------------------
FILE html che visualizza il form:
<html>
<head>
<title>index</title>
<head>
<script type="text/javascript" language="javascript" src="http://localhost/cashfund_locale/script/jquery-latest.min.js""></script>
<script type="text/javascript" language="javascript" src="http://localhost/cashfund_locale/script/jquery-1.9.1.min.js""></script>
<script type="text/javascript" language="javascript" src="http://localhost/cashfund_locale/script/jquery-ui.min.js""></script>
<script type="text/javascript" language="javascript" src="http://localhost/cashfund_locale/script/valore_prodotto.js""></script>
</head>

<body>

<form action=index.php method=post>
<label for="codice_prodotto">Ricerca Codice
<input type="text" id="codice_prodotto" name="codice_prodotto" class="ui-autocomplete-input"
onchange="valore(this);" />
</label>

<label for="prodotto">Prodotto
<textarea id="prodotto" name="prodotto"></textarea>
</label>
<input type=submit name=invio vlaue=invio />
</form>
</body>
</html>
-------------------------------------------

file javascript (valore_prodotto.js) :

$(function valore(el) {
var codice_prodotto= $('#codice_prodotto');
$('#prodotto').val(
{
source:
function(request, response) {
$.ajax({
url:"http://localhost/cashfund_locale/pages/acquisti/valore_prodotto.php",
method: 'get',
data: { codice_prodotto: codice_prodotto.val()},
success: function( data ) {
response( $.map( data, function( item ) {
return item.label;
}));
}

});
},

}
,"json")
});
------------------------------------------

file in php che esegue la query:

hp

$con=mysql_connect("localhost","root","");
mysql_select_db("cashfund");
mysql_query("SET NAMES utf8");

if(isset($_GET['codice_prodotto']))
{
$codice_prodotto = trim(strip_tags($_GET['codice_prodotto']));

$a_json = array();
$a_json_row = array();


$query="SELECT CONCAT(Genere,'-',Marca,'-',Modello) FROM prodotto INNER JOIN genere ON prodotto.IdGenere=genere.IdGenere INNER JOIN marca
ON prodotto.IdMarca=marca.IdMarca WHERE ( (IMEI='".$codice_prodotto."') OR (SerialNumber='".$codice_prodotto."') )";
$q=mysql_query($query);
echo mysql_error();

while($row = mysql_fetch_array($q,MYSQL_NUM))
{
$name = htmlentities(stripslashes($row[0]));
$a_json_row['value'] = $name;
$a_json_row['label'] = $name;
array_push($a_json, $a_json_row);
};
header('Content-Type: application/json');
echo json_encode($a_json);
flush();
};
?>
-------------------------------

Quello che non funziona è la visualizzazione della query nel campo textarea.
Nella consolle degli errori in Chrome non viene notificato niente, tuttavia nel campo textarea che dovrebbe visualizzare la query appare la scritta: [object Object]

Da cosa potrebbe dipendere l'errore?

Grazie in anticipo
 
Ciao, utilizza la formattazione del codice please, icone # <> e php sulla barra di formattaizone dei post

la scritta [object Object] indica che stai cercando di stampare un oggetto o un array
Devi ciclarlo e stampare i singoli elementi
 
Ciao Criric,

Nel frattempo ho risolto grazie ad un amico esperto di jquery, ho modificato lo script in javascript in questo modo:

window.valore = function valore(el) {

var codice_prodotto= $('#codice_prodotto');

$.ajax({
url:"http://localhost/cashfund_locale/pages/acquisti/valore_prodotto.php",
method: 'get',
data: { codice_prodotto: codice_prodotto.val()},
success: function( data ) {
var labels = $.map( data, function( item ) {
return item.label;
});
var result = "";
var joinedLabels = $.each(labels, function(index, value){ result += value + "\n"; });
$('#prodotto').val(result);
}
});
};

Inoltre ho notato che l'evento onchange non era in grado di gestire la funziona, così ho sfruttato un bottone che la richiamava e adesso funziona tutto.

Grazie comunque.
 

Discussioni simili