Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP关于表单更改的更新_Php_Cakephp - Fatal编程技术网

CakePHP关于表单更改的更新

CakePHP关于表单更改的更新,php,cakephp,Php,Cakephp,此表格: <?php echo $this->Form->create(); echo $this->Form->select('quantity', [1,2,3,4,5,6,7,8,9], ['value'=> $this->Number->format($cartitem['quantity']) , 'class'=>'form-control', 'type'=>'number']);

此表格:

<?php
    echo $this->Form->create();
    echo $this->Form->select('quantity', [1,2,3,4,5,6,7,8,9], ['value'=> $this->Number->format($cartitem['quantity']) ,
        'class'=>'form-control', 'type'=>'number']);
    echo $this->Form->end();
?>

我现在可能只是刷新页面进行更新。因此,我想在选择下拉列表中的另一项时调用该方法。如何操作?

如果您可以重新加载页面,只需将表单指向您的操作:

$this->Form->create(null,["url" => ["controller" => "Cart", "action" => "updateQuantity"], "id" => "my-form"]);
如果您想通过POST提交表格,请同时更改以下行:

$data[0]['quantity'] = $this->request->getParam('quantity');
致:

或者,如果您想通过GET提交表单,只需在表单->create():
“type”=>“GET”

您还需要一种提交此表单的方式。当您想要在输入值更改时提交它时,您需要使用一些JavaScript。使用jQuery的示例:

$("#my-select").change(function(){
    $("#my-form").submit();
});

如果您不想重新加载页面,只需使用$.ajax()调用您的操作。

如果您可以重新加载页面,只需将表单指向您的操作:

$this->Form->create(null,["url" => ["controller" => "Cart", "action" => "updateQuantity"], "id" => "my-form"]);
如果您想通过POST提交表格,请同时更改以下行:

$data[0]['quantity'] = $this->request->getParam('quantity');
致:

或者,如果您想通过GET提交表单,只需在表单->create():
“type”=>“GET”

您还需要一种提交此表单的方式。当您想要在输入值更改时提交它时,您需要使用一些JavaScript。使用jQuery的示例:

$("#my-select").change(function(){
    $("#my-form").submit();
});

如果您不想重新加载页面,可以使用调用您的操作,例如$.ajax()。

这实际上会提交表单并刷新页面,尽管每次实际值都会更改为0。它没有将值从表单传递到post…我再次检查了您的代码,并更新了我的答案。实际上,这会提交表单并刷新页面,但实际值每次都会更改为0。它没有将表单中的值传递给post…我再次检查了您的代码,并更新了我的答案。