Ich benutze das Framework Phalcon. Ich versuche ein Formular zu erstellen, um einen Wert (eine ID namens "idcliente") von einer Tabelle (in mysql) namens cliente, die zwei Spalten hat: "idcliente" und "nombre". Mit diesem Wert möchte ich ein Feld (auch "idcliente") in einer anderen Tabelle namens Benutzer aktualisieren.Formular mit Dropdown funktioniert nicht auf Phalcon
Meine Form ist dies:
class AsignarclienteForm extends Form{
public function initialize($entity = null, $options = null){
$idcliente = new Select('idcliente',[
Cliente::find(),
"useEmpty" => true,
"emptyText" => "Please select...",
"using" => ["idcliente", "nombre"],
]);
$idcliente->setLabel('ID Cliente');
$idcliente->addValidators(array(
new PresenceOf(array(
'message' => 'idcliente is required'
))
));
$this->add($idcliente);
}
}
Und mein Controller:
public function asignarclienteAction(){
$auth = $this->session->get('auth');
$permiso = $auth['active'];
$id = $auth['id'];
if($permiso!='A'){return $this->forward('servicios/index');}
$form = new AsignarclienteForm;
if ($this->request->isPost()) {
$idcliente = $this->request->getPost('idcliente');
$sql = "UPDATE Users SET idcliente = ?0 WHERE id = ?1";
$this->modelsManager->executeQuery($sql, array(0 => $idcliente, 1 => $id));
return $this->forward('admin/usuarios');
}
$this->view->form = $form;
}
Und meine Ansicht:
<div class="panel-body">
{{ form('admin/asignarcliente/', 'id': 'asignarclienteForm', 'onbeforesubmit': 'return false') }}
<fieldset>
<div class="control-group">
{{ form.label('idcliente', ['class': 'control-label']) }}
<div class="controls">
{{ form.render('idcliente', ['class': 'form-control']) }}
</div>
</div>
<div class="form-actions">
{{ submit_button('Asignar', 'class': 'btn btn-primary', 'onclick': 'return SignUp.validate();') }}
</div>
</fieldset>
</form>
</div>
Ich habe die folgenden Fehler in der Website:
ID Cliente Catchable fatal error: Object of class Phalcon\Mvc\Model\Resultset\Simple could not be converted to string in C:\xampp\htdocs\OpinionZoom\cache\volt\c%%%%xampp%%htdocs%%opinionzoom%%app%%views%%admin%%asignarcliente.volt.php on line 31
Wo Linie 31 ist {{ form.render('idcliente', ['class': 'form-control']) }}
auf meiner Ansicht
ich nicht genug Dokumentation zum Erstellen eines Formulars mit ausgewählten gefunden haben, trotz ich viele Formen geschaffen haben.
Wenn jemand mir helfen könnte, würde ich es sehr schätzen. Vielen Dank.
Eine Frage: Warum tun Sie Schleife über Ihre Formularelemente aus Ihrer Sicht? Sie verwenden nicht die Variable 'element' in Ihrer Schleife. Jetzt geben Sie nur Ihr "idcliente" -Element x mal aus! Oder war das nur für Debugging-Zwecke? – Timothy
@Timothy Gute Beobachtung. Ich habe ein Beispiel kopiert, das ich im Web gefunden habe. Aber du hast recht, in meinen anderen Formen habe ich keine for-Schleife. Danke: D Schon raus. –