Ich möchte etwas wie diese unten Code erreichen. nur, dass der Code eine Anfrage aus der Datenbank macht, möchte ich Anfrage an die Datenbank senden
$.post("/trobay/categories/default/lists?parent_id="+$(this).val(), function(data) {
wie Anfrage senden Attributnamen hinzufügen und Attributwert in DB speichern unten ist mein Code habe ich bereits
<?php
$script = <<< JS
$(document).ready(function(){
//setup before functions
var typingTimer;
var doneTypingInterval = 3000;
var \$TitleInput = $('#product-product_title');
//on keyup, start the countdown
\$TitleInput.on('keyup input change paste',function(){
clearTimeout(typingTimer);
if (\$TitleInput.val()) {
typingTimer = setTimeout(doneTyping, doneTypingInterval);
}
});
//user is "finished typing," do something
function doneTyping() {
data = \$TitleInput.val();
$.ajax({
url: '/trobay/draft/create',
type: 'POST',
data: data,
success: function (data) {
alert(data)
},
error: function(jqXHR, errMsg) {
// handle error
alert(errMsg);
}
});
}
});
JS;
$this->registerJs($script);
?>
in meinem Controller ich habe diese
public function actionCreate()
{
$model = new Draft();
if ($model->load(Yii::$app->request->post())) {
$model->created_at = \time();
if($model->save()){
return draftId;
}else{
return '0';
}
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
und meiner Ansicht nach habe ich dieses
<?php $form = ActiveForm::begin(['id'=>$model->formName(),
'enableClientValidation'=> true,
'fieldConfig' => ['template' => '{label}{input}{hint}']]); ?>
<div class="row">
<div class="col-md-12">
<?= $form->field($model, 'product_title')->textInput([
'class'=>'title-input',
'placeholder' => 'Give us a title for your items(include size,brand,color,material. e.t.c)',
])->label(false) ?>
</div>
<div class="col-md-12 text-muted">
E.g Men's blue addidas glide running shoes size 11
</div>
</div>
<?= $form->field($model, 'user_id')->textInput() ?>
<?= $form->field($model, 'product_title')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'product_name')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'product_description')->textarea(['rows' => 6]) ?>
<?= $form->field($model, 'category_id')->textInput() ?>
Nun meine Frage ist, ich möchte nur den Wert der einzelnen Feldeingabe greifen und es zu Server-Seite für speichern im DB senden, ohne dass das gesamte Formular Der über JS Code funktioniert genug, um den Wert zu unterbreiten aber wie sende ich diese an den Server sparen
Wenn Sie Ihr Formular in JSON Notation konvertieren wollen, wo der Elementname Schlüssel und der Wert ... naja ... der Wert ist, vielleicht [diese Frage] (http://stackoverflow.com/questions/11338774/ serialize-form-data-to-json) können Sie beginnen. Suche nach dem Schlüsselwort 'serializeObject' ... –