J'ai cherché une réponse pendant une semaine, mais je pense que ma compréhension n'est pas assez élevée pour suivre la plupart de ce que je trouve. J'utilise une simple fonction "ajouter un client à une base de données" basée sur un tutoriel, je l'ai maintenant modifié pour que je puisse récupérer des enregistrements de la base de données via le bouton "Modifier les clients". Le bouton « Modifier les clients » affiche la liste des enregistrementsJquery, Ajax, PHP: Modification des entrées mysql
$('button.edit').click(function() {
//alert('this is an alert message');
$('form#submit').hide(function(){$('div.showRecords').fadeIn()});
});
(je sais que c'est bâclée et je préférerais avoir remplir le formulaire lorsque les « Modifier clients » est poussé, mais je ne suis pas tout à fait encore dans ma compréhension)
J'ai les enregistrements de liste fonctionnant, mais à côté de chaque enregistrement dans la "liste d'enregistrement" est un bouton d'édition (un pour chaque enregistrement). De là (ne fonctionne pas) je veux pouvoir $ ('button.editRecords'). Click (function() {pour être capable de modifier les enregistrements individuels à partir du formulaire ... Je me sens un peu sur ma tête.
Dans la fonction PHP, l'ID est passé dans l'URL à la page de formulaire qui appelle l'enregistrement basé sur l'ID.Je devine que je dois faire quelque chose de similaire où je récupère le formulaire, c'est là Je commence chasser ma queue ... des idées?
<script type"text/javascript">
$(document).ready(function(){
$('button.edit').click(function() {
//alert('this is an alert message');
$('form#submit').hide(function(){$('div.showRecords').fadeIn()});
});
$('button.editRecords').click(function() {
//alert('this is an alert message');
$('form#submit').hide(function(){$('div.updateRecords').fadeIn()});
});
$("form#submit").submit(function() {
// we want to store the values from the form input box, then send via ajax below
var fname = $('#fname').attr('value');
var lname = $('#lname').attr('value');
$.ajax({
url: "ajax.php",
type: "POST",
data: "fname="+ fname +"& lname="+ lname,
success: function(data)
{
if(data.success == 1)
{
alert ('success');
//$('form#submit').hide(function(){$('div.success').fadeIn()});
}
else
{
alert ('failure');
//$('form#submit').hide(function(){$('div.failed').fadeIn()});
}
}
});
return false;
});
$("form#form1").submit(function() {
// we want to store the values from the form input box, then send via ajax below
var fname = $('#fname').attr('value');
var lname = $('#lname').attr('value');
$.ajax({
url: "update_ac.php",
type: "GET",
data: "fname="+ fname +"& lname="+ lname +"& id="+ id,
success: function(data)
{
if(data.success == 1)
{
alert ('success');
//$('form#submit').hide(function(){$('div.success').fadeIn()});
}
else
{
alert ('failure');
//$('form#submit').hide(function(){$('div.failed').fadeIn()});
}
}
});
return false;
});
});
</script>
<body>
<br><br><br><br><br><br><br><br>
<form id="submit" method="post">
<fieldset>
<legend>Enter Information</legend>
<label for="fname">Client First Name:</label>
<input id="fname" class="text" name="fname" size="20" type="text">
<label for="lname">Client Last Name:</label>
<input id="lname" class="text" name="lname" size="20" type="text">
<button class="button positive"> <img src="../images/icons/tick.png" alt=""> Add Client </button>
</fieldset>
</form>
<div class="listRecords">
<button class="edit"> <img src="../images/icons/tick.png" alt="">Edit Clients</button>
</div>
<div class="showRecords" style="display:none;">
<?php $sql="SELECT * FROM clients";
$result=mysql_query($sql);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td>
<table width="400" border="1" cellspacing="0" cellpadding="3">
<tr>
<td colspan="4"><strong>List data from mysql </strong> </td>
</tr>
<tr>
<td align="center" style="background-color:#FFF;"><strong>Name</strong></td>
<td align="center" style="background-color:#FFF;"><strong>Lastname</strong></td>
<td align="center" style="background-color:#FFF;"><strong>Edit</strong></td>
</tr>
<?php while($rows=mysql_fetch_array($result)){ ?>
<tr>
<td><? echo $rows['fname']; ?></td>
<td><? echo $rows['lname']; ?></td>
<td align="center">
<!--- <a href="updated2.php?id=<? //echo $rows['id']; ?>">---><!--- This is where the form carried the id to updated2.php that I need to replicate in my jquery function --->
<button class="editRecords"><img src="../images/icons/edit.gif" height="20" width="58" alt="Edit Record"><? echo $rows['id']; ?></button>
</a>
</td>
</tr>
<?php } ?>
</table>
</td>
</tr>
</table>
</div>
<div class="updateRecord" style="display:none;">
<?php
$id=$_GET['id'];
// Retrieve data from database
$sql="SELECT * FROM clients WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<form name="form1" method="post">
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td> </td>
<td colspan="3"><strong>Update Records</strong> </td>
</tr>
<tr>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
</tr>
<tr>
<td align="center"> </td>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Lastname</strong></td>
</tr>
<tr>
<td> </td>
<td align="center"><input name="fname" type="text" id="fname" value="<? echo $rows['fname']; ?>"></td>
<td align="center"><input name="lname" type="text" id="lname" value="<? echo $rows['lname']; ?>" size="15"></td>
</tr>
<tr>
<td> </td>
<td><input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>"></td>
<td align="center"><input type="submit" name="Update" value="Update"></td>
<td> </td>
</tr>
</table>
</td>
</form>
</tr>
</table>
</div>
Je viens de tombé sur quelque chose qui pourrait vous aider. Devrais-je modifierons mon original fichier de traitement ajax pour pouvoir ajouter, afficher et modifier des éléments plutôt que faire cela avec différents fichiers de traitement ajax?
Modifier 12/20
J'ai tout fonctionne maintenant et une fois que je reçois ces messages d'erreur de travail je posterai les résultats pour les autres. Là où je suis bloqué à la dernière pièce, une fois que l'édition finale est renvoyée à la base de données, la boîte de dialogue d'erreur indique toujours incorrectement qu'elle a échoué, mais l'information est mise à jour dans la base de données. Voici le code pour l'ajax final où l'erreur se produit.
<?php
include_once '../includes/opendb.php';
include_once 'header.php';
?>
<script type"text/javascript">
$(document).ready(function(){
$('button.buttonpositive2').click(function() {
//$("form#submit2").click(function() {
// we want to store the values from the form input box, then send via ajax below
var fname2 = $('#fname2').attr('value');
var lname2 = $('#lname2').attr('value');
var id = $('#id').attr('value');
$.ajax({
url: "ajax4.php",
type: "POST",
//data: "fname="+ fname +"& lname="+ lname,
data: "id="+ id +"&fname="+ fname2 +"&lname="+ lname2,
success: function(data)
{
if(data.success == 'y')
{
alert ('success');
//$('form#submit').hide(function(){$('div.success').fadeIn()});
}
else
{
alert ('failure');
//$('form#submit').hide(function(){$('div.failed').fadeIn()});
}
}
});
return false;
});
/*$('button.positive2').click(function() {
var fname = $(this).attr('value');
var lname = $(this).attr('value');
var id = $(this).attr('value');
//alert('this is the edit button', 'Alert Dialog');
$('div.updateRecord').fadeOut(function(){$('div.saveRecord').load("ajax4.php?id="+ id +"& fname="+ fname +"& lname="+ lname).fadeIn()});*/
});
</script>
<?php
echo '</head>
<body>';
$id=$_GET['id'];
$sql="SELECT * FROM clients WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
echo
'<form id="submit2" method="post">
<fieldset>
<legend>Edit Information</legend>
<label for="fname2">Client First Name:</label>
<input id="fname2" class="fname2" name="fname2" size="20" type="text" value="' . $rows['fname'] . '">
<label for="lname2">Client Last Name:</label>
<input id="lname2" class="lname2" name="lname2" size="20" type="text" value="' . $rows['lname'] . '">
<input id="id" name="id" type="text" class="text" value="' . $rows['id'] . '">
<button class="buttonpositive2"> <img src="../images/icons/tick.png" alt=""> Save Edit </button>
</fieldset>
</form>'
;
?>
Doux ça a marché !!! – Fred