Aidez-moi s'il vous plaît! Je n'ai pas assez d'expérience dans JQuery pour trouver cette solution par moi-même.
I Affiche une table d'une base de données. J'ai 2 lignes avec une image (logo) qui est affichée correctement. Lorsque je veux changer le logo, j'ouvre la fenêtre modale. P>
Ma question est la suivante: Dans la fenêtre modale, comment afficher l'image du logo actuel que j'essaie de modifier? p>
Je pensais que je devais simplement utiliser l'identifiant des lignes pour créer un "SQL Select", mais après beaucoup de recherches que je capitulent. P>
L'ID de la ligne est bien affiché dans des fenêtres modales mais impossible à utiliser cela dans une variable pour créer une requête SQL. p>
3 Réponses :
Assurez-vous que Essayez le code suivant: P> $ ligne [22] code> contient la valeur exacte que vous attendez.
$sql = "select * from setting WHERE id='" . $id . "'";
$result = mysqli_query($conn, $sql);
if(isset($result)){
$row=mysqli_fetch_assoc($result);
if (count($row) > 0) {
//use proper array key name
//if db column name name is logo then you can access it like $row['logo']
$img_logo = '<img height="50" src="data:image;base64,' . $row['logo'] . '">';
} else {
//count is zero
echo 'count is zero';
}
} else {
//result is empty
echo 'result is empty';
}
?>
Oui, il y a une valeur exacte en $ ligne [22]
Comparez les valeurs en $ Data-> img_logo_content et $ ligne [22]. Je pense que c'est votre problème.
L'erreur n'est pas comprise entre $ données> img_logo_content et $ ligne [22], mais parce que la valeur $ ID n'existe pas. Comment déclarer cette valeur?
J'ai oublié de dire cela avec ce code, j'ai toujours le dernier identifiant de mon tableau. (Quand je clique sur la ligne 1, c'est $ ID de la rangée 2)
Il y a deux options pour faire ceci:
Si vous choisissez une deuxième option, vous pouvez le faire comme ci-dessous: P>
à ci-dessous: p> et veuillez également modifier le code ci-dessous: p> <body class="docs">
<!-- Header -->
<!-- Content -->
<div class="container">
<div class="docs-section">
<div class="example">
<table id="editing-example" class="table" data-paging="true" data-filtering="false" data-sorting="false">
<thead>
<tr>
<th data-name="id" data-breakpoints="xs" data-type="number">ID</th>
<th data-name="nom_config">Name</th>
<th data-name="img_logo_content">Logo</th>
</tr>
</thead>
<tbody>
<?php foreach( $datas as $data ) { ?>
<tr data-expanded="true">
<td>
<?php echo $data->id; ?></td>
<td>
<?php echo $data->nom_config; ?></td>
<td>
<?php echo '<img height="20" src="data:image;base64,' . $data->img_logo_content . '">' ?></td>
</tr>
<?php } ?>
</tbody>
</table>
<!-- Modal -->
<div class="modal fade" id="editor-modal" tabindex="-1" role="dialog" aria-labelledby="editor-title">
<style scoped>
.form-group.required .control-label:after {
content: "*";
color: red;
margin-left: 4px;
}
</style>
<div class="modal-dialog" role="document">
<form class="modal-content form-horizontal" id="editor">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="editor-title">Add Row</h4>
</div>
<div class="modal-body">
<input type="number" id="id" name="id" class="hidden" />
<div class="form-group required">
<label for="nom_config" class="col-sm-4 control-label">Name</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="nom_config" name="nom_config" required>
</div>
</div>
<div class="form-group">
<label for="img_logo_content" class="col-sm-4 control-label">logo</label>
<div class="col-sm-8">
<!-- Display logo -->
<div id="logo-preview"></div>
<input type="file" class="form-control" id="img_logo_content" name="img_logo_content" placeholder="Votre Logo">
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Save changes</button>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
</div>
</form>
</div>
</div>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://fooplugins.github.io/FooTable/docs/js/prism.js"></script>
<script src="https://fooplugins.github.io/FooTable/docs/js/ie10-viewport-bug-workaround.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.min.js"></script>
<script src="https://fooplugins.github.io/FooTable/compiled/footable.js"></script>
<!-- Initialize FooTable -->
<script>
jQuery(function($) {
var $modal = $('#editor-modal'),
$editor = $('#editor'),
$editorTitle = $('#editor-title'),
ft = FooTable.init('#editing-example', {
editing: {
enabled: true,
addRow: function() {
$modal.removeData('row');
$editor[0].reset();
$editorTitle.text('Add a new row');
$modal.modal('show');
},
editRow: function(row) {
var values = row.val();
$editor.find('#id').val(values.id);
$editor.find('#nom_config').val(values.nom_config);
$editor.find('#logo-preview').html(values.img_logo_content);
$modal.data('row', row);
$editorTitle.text('Edit row #' + values.id);
$modal.modal('show');
},
deleteRow: function(row) {
if (confirm('Are you sure you want to delete the row?')) {
row.delete();
}
}
}
}),
uid = 10;
$editor.on('submit', function(e) {
if (this.checkValidity && !this.checkValidity()) return;
e.preventDefault();
var row = $modal.data('row'),
values = {
id: $editor.find('#id').val(),
nom_config: $editor.find('#nom_config').val(),
img_logo_name: $editor.find('#img_logo_name').val()
};
if (row instanceof FooTable.Row) {
$.ajax({
url: 'update.php',
dataType: "json",
cache: false,
data: {
id: values['id'],
nom_config: values['nom_config'],
img_logo_content: values['img_logo_content']
},
success: function(data) {
if (data.return) {
alert("Success");
row.val(values);
} else {
alert("No modifications!");
}
},
});
} else {
$.ajax({
url: 'insert.php',
data: {
id: values['id'],
nom_config: values['nom_config'],
img_logo_content: values['img_logo_content']
},
success: function(data) {
if (data.return) {
alert("Success");
ft.rows.add(values);
location.reload();
} else {
alert("Already used!");
}
},
});
}
$modal.modal('hide');
});
});
</script>
</body>
Merci beaucoup pour votre aide, ça marche bien maintenant! Je vais essayer de comprendre mon erreur plus tard .. pas eu du temps en ce moment
Je vous en prie! N'oubliez pas d'accepter ma réponse: D
Une dernière question. Si je veux utiliser une demande SQL dans ma fenêtre modale comme le code que vous me demandez de supprimer, est-ce possible et comment préparer le code JQuery? Je cherche cela depuis longtemps.
Vous ne pouvez pas. Tout le code PHP sera exécuté avant d'envoyer la sortie (HTML) sur le navigateur. Ainsi, lorsque vous cliquez sur Ouvrir le modal, vous ne pouvez plus exécuter de code PHP. La solution consiste à créer une API qui exécutez la requête SQL puis retourner la ligne de détail, puis utilisez ces informations à afficher dans le modal.
Je pense avoir enfin la solution pour la deuxième option (API). Qu'est-ce que tu penses?
@Canta j'ai des améliorations pour votre code, vous pouvez le vérifier ici: Pastebin.com/lepcietr
Je pense avoir enfin la solution pour la deuxième option (API).
Ajouter ci-dessous Code P>
<?php include('../connection.php'); if (isset($_POST['productID'])) { $productID = $_POST['productID']; $sql = "select * from setting WHERE id='" . $productID . "'"; $result = mysqli_query($conn, $sql); if(isset($result)){ $row=mysqli_fetch_assoc($result); if (count($row) > 0) { $data = '<img height="50" src="data:image;base64,' . $row['img_logo_content'] . '">'; } } echo json_encode($data); } ?>
Merci ! Mais il y a une affichage toujours la même image ???