Comment Modifier enregistrement à l'aide de Codeigniter
Je suis en train de modifier mon db enregistrement à l'aide de codeigniter, mais je ne peux pas le faire et quel est le problème, je ne comprenais pas. S'il vous plaît aider.
Voici mon contrôleur code :
public function edit()
{
$this->form_validation->set_rules('name','Name','trim|required');
$this->form_validation->set_rules('email','E-mail','trim|required');
$this->form_validation->set_rules('phone','Phone','trim|required');
if ($this->form_validation->run() == FALSE) {
echo "error";
}
else{
$id = $this->input->post('id');
$this->crud_mdl->editCrud($id);
echo "success";
}
}
Voici mon modèle code :
public function editCrud($id)
{
$update = array(
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'phone' => $this->input->post('phone')
);
$this->db->where('id',$id);
return $this->db->update('test', $update);
}
Voici mon vue :
<div>
<?php echo form_open('crud/edit');?>
<?php foreach ($records as $record) {?>
<label> ID </label>
<input type="text" name="id" id="id" disabled="disable" value = "<?php echo $record->id ;?>" /><br/>
<label>Name</label>
<input type="text" name="name" id ="name" value = "<?php echo $record->name ;?>" /><br/>
<label>E-Mail</label>
<input type="text" name="email" id ="email" value="<?php echo $record->email ;?>" /><br/>
<label>Phone</label>
<input type="text" name="phone" id ="phone" value = "<?php echo $record->phone ;?>" /><br/>
<input type="submit" name="edit" value="Edit" />
<?php }?>
<?php echo form_close();?>
</div>
a u vérifier si u r l'obtention de valeur pour l'array $mise à jour dans le modèle??
oui j'ai vérifié iam obtenir la valeur mise à jour de la matrice $mise à jour. mais mis à jour l'enregistrement n'est pas enregistré dans la base de données.
Si vous r d'obtenir les valeurs dans le modèle, alors il devrait être mis à jour comme il n'y a aucune erreur dans ce que je peux voir.
assurez-vous que vous avez chargé le modèle par $this->load->model('test'); et les clés du tableau $mise à jour ont le même nom comme nom de champ.
Meilleure façon de le vérifier pour l'erreur dans la requête est s'en faire l'écho dans le modèle, return $this->db->last_query();
oui j'ai vérifié iam obtenir la valeur mise à jour de la matrice $mise à jour. mais mis à jour l'enregistrement n'est pas enregistré dans la base de données.
Si vous r d'obtenir les valeurs dans le modèle, alors il devrait être mis à jour comme il n'y a aucune erreur dans ce que je peux voir.
assurez-vous que vous avez chargé le modèle par $this->load->model('test'); et les clés du tableau $mise à jour ont le même nom comme nom de champ.
Meilleure façon de le vérifier pour l'erreur dans la requête est s'en faire l'écho dans le modèle, return $this->db->last_query();
OriginalL'auteur Xubayer pantho | 2014-03-31
Vous devez vous connecter pour publier un commentaire.
Vous avez
disabled="disable"
dans votreinput
pourid
. Cela signifie qu'il ne sera pas inclus dans le formulaire dePOST
. Vous devez supprimerdisabled="disable"
.Essayer ça:
Pour de bonnes pratiques que vous devez définir le type d'entrée à
hidden
au lieu de mettre l'ID dans l'url (dépend de votre application).Je ne veux pas qu'il soit changé, j'étais juste à signaler que si il est désactivé attribut puis il l'habitude de l'envoyer. L'ID doit être dans l'URL idéalement.
Merci SamV et BabyAzert. il fonctionne très bien.
Bien que l'on a accepté de répondre fonctionne, je pense que BabyAzerty la réponse est plus approprié que vous ne voulez pas avoir un formulaire où vous permettez à l'id de l'être modifié avant d'être posté.
OriginalL'auteur SamV