Ha senso, in questo caso puoi modificare in questo modo:
Codice:$(function () { $('#id').keyup(function () { var value = $(this).val(); $.get('service.php', { title: value }, function (data) { var container = $('#results-container'); var item = $('<span>').html(data); container.append(item); }); }); $(document).on('dblclick', '.fc-content', function () { var value = $('#id').val(); //console.log(value); var container = $('#results-container'); container.empty(); $.get('service.php', { title: value }, function (data) { var item = $('<span>').html(data); container.append(item); }); }); }); </script>
Ultima modifica di mzanella : 21-02-2020 alle ore 10.07.39
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
benissimo,
adesso funziona...però con un solo campo del db ovvero la colonna color...
io ho la necessità di stampare a video tutti i dati di tutte le colonne
ho ipotizzato di modificare così il file service:
ma il file index?Codice HTML:<?php $database = mysql_connect('localhost', 'contabilitavergotti', '') or die('Could not connect: ' . mysql_error()); mysql_select_db('my_contabilitavergotti') or die('Impossibile selezionare il database database'); $title = $_REQUEST['title']; //$title = "15"; $query = "SELECT * FROM `events` WHERE id = '".$title."'"; $result = mysql_query($query); $id = mysql_result($result,0,'id'); $title = mysql_result($result,0,'title'); $Descrizione = mysql_result($result,0,'Descrizione'); $color = mysql_result($result,0,'color'); $start = mysql_result($result,0,'start'); $end = mysql_result($result,0,'sendtart'); // i risultati vengono inseriti nel vettore $data header('Content-Type: application/json'); echo json_encode($id); echo json_encode($title); echo json_encode($Descrizione); echo json_encode($color); echo json_encode($start); echo json_encode($end); ?>
Ultima modifica di contabilitavergotti : 21-02-2020 alle ore 01.36.27
Bisogna fare un po' di passi indietro, questo sarebbe stato più comodo gestirlo prima.
Innanzitutto nel file PHP devi restituire un unico JSON, non vari pezzi separati. E non utilizzare le funzioni mysql_*: non esistono più nelle versioni più recenti del linguaggio.
Poi va modificato il codice JavaScript di conseguenza, magari facendo un po' di refactoring...Codice PHP:
<?php
$database = mysqli_connect('localhost', '', '', 'my_contabilitavergotti')
or die('Could not connect: ' . mysqli_connect_error());
// Reads title
if (!isset($_REQUEST['title'])) {
die("Missing parameter \"title\".");
}
$title = $_REQUEST['title'];
// Reads form database
$query = "SELECT id, title, Descrizione, color, start, end FROM `events` WHERE id = '" . $title . "'";
$result = mysqli_query($database, $query);
if ($result === false || mysqli_num_rows($result) === 0) {
die("No match for \"$title\".");
}
$data = mysqli_fetch_assoc($result);
// Displays results
header('Content-Type: application/json');
echo json_encode($data);
// Deallocates resources
mysqli_close($database);
Codice:$(function () { function show_data(data) { var container = $('#results-container'); container.empty(); var item = $('<span>').html(data.id); container.append(item); var item = $('<span>').html(data.title); container.append(item); var item = $('<span>').html(data.Descrizione); container.append(item); var item = $('<span>').html(data.color); container.append(item); var item = $('<span>').html(data.start); container.append(item); var item = $('<span>').html(data.end); container.append(item); } $('#id').keyup(function () { var value = $(this).val(); $.get('service.php', { title: value }, show_data); }); $(document).on('dblclick', '.fc-content', function () { var value = $('#id').val(); $.get('service.php', { title: value }, show_data); }); });
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.
ho provato con il codice da te indicato ma non mi stampa a video nulla ho modificato la query nel file service in:
e così funzionaCodice PHP:
$query = "SELECT * FROM `events` WHERE id = '" . $title . "'";
stampando a video i valori uno dopo l'altro correttamente
un'ultime due cose
- Ho notato che nel js andiamo ad aprire uno <span> che non viene mai chiuso....come mai?
- nella index, qualora volessi mettere in testo prima di stampare la variabile, ho modificato il codice così: var item = $('<hr>TITOLO: <br><span>').html(data.title); e funziona bene, però se foglio applicare un qualsiasi stile al testo aggiunto, per esempio var item = $('<hr><strong>TITOLO:</strong> <br><span>').html(data.title); anzichè stampare il testo TITOLO: mi stampa il valore della variabile TITOLO...come posso risolvere
Ultima modifica di contabilitavergotti : 21-02-2020 alle ore 11.31.20
No, viene piuttosto creato un elemento del DOM ti tipo span. È jQuery ad occuparsi di apertura e chiusura del tag.Ho notato che nel js andiamo ad aprire uno <span> che non viene mai chiuso....come mai?
Puoi creare gli opportuni elementi del DOM:nella index, qualora volessi mettere in testo prima di stampare la variabile, ho modificato il codice così: var item = $('<hr>TITOLO: <br><span>').html(data.title); e funziona bene, però se foglio applicare un qualsiasi stile al testo aggiunto, per esempio var item = $('<hr><strong>TITOLO:</strong> <br><span>').html(data.title); anzichè stampare il testo TITOLO: mi stampa il valore della variabile TITOLO...come posso risolvere
Codice:var separator = $('<hr>'); var label = $('<strong>').html('TITOLO:'); var line_break = $('<br>'); var title = $('<span>').html(data.title); container.append(separator).append(label).append(line_break).append(title);
I suggerimenti che do più spesso:
- Le funzioni mysql_* non fanno più parte di PHP. Usa PDO o MySQLi.
- Il supporto a PHP 5.x è cessato l'1 gennaio 2019, e con esso le funzioni mysql_*. Che ti piaccia o no.
- Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
- Indenta correttamente il codice e usa nomi significativi per gli identificatori.