Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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
Yii2:使用按钮调用javascript函数_Javascript_Php_Jquery_Html_Yii2 - Fatal编程技术网

Yii2:使用按钮调用javascript函数

Yii2:使用按钮调用javascript函数,javascript,php,jquery,html,yii2,Javascript,Php,Jquery,Html,Yii2,我想从php中的按钮调用javascript函数 这是php代码: //the view <?php $form = yii\widgets\ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?> <?= $form->field($msubs, 'id_subespecifica', ['options' => ['clas

我想从php中的按钮调用javascript函数

这是php代码:

//the view
    <?php

    $form = yii\widgets\ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); 

    ?>

 <?=

$form->field($msubs, 'id_subespecifica', ['options' => ['class' => 'col-md-12']])
  ->widget(Select2::classname(),[
        'data' => ArrayHelper::map($vectorConsul,'sesp', 'sesp'),
        'options' => ['id' => 'prueba'],
        ])

  ->label(false);


 ?>


    <button class="btn btn-primary" onclick="myFunction()">Add New</button>


<?php
yii\widgets\ActiveForm::end(); 
?>
在javascript函数中,我需要将$('#prueba').val()发送到控制器中的php函数:

//Controller
public function actionGetLinea($pruebaId)
{
    $model = new PartidaAsociada();
    log($pruebaId);
}
但是我遇到了一些错误,我认为按钮正在重新加载整个表单,并且无法识别y发送到表单的先前数据


注意:javascript函数中的'alert()'在注释中,因为它不允许我使用,所以当我发出警报时,表单保持加载状态。事先谢谢。

我认为部分问题在于您没有阻止按钮单击的默认操作

我们也可以清理一下。点击control+shift+i并选择console选项卡以查看console.log输出

HTML:

添加新的

Javascript:

$('._addNew').on('click', function(event){
    event.preventDefault();
    var data = {};
    data.pruebaId = $('#prueba').val();

    var success = function(data){
       console.log("Success!", data);
    }
    var error = function(data){
       console.log("Error!", data);
    }
    $.ajax({
      url:'partidaasociada/get-linea',
      type:'POST',
      dataType:'json',
      data:data
   }, success, error);
});

我认为部分问题在于你没有阻止默认的按钮点击行为

我们也可以清理一下。点击control+shift+i并选择console选项卡以查看console.log输出

HTML:

添加新的

Javascript:

$('._addNew').on('click', function(event){
    event.preventDefault();
    var data = {};
    data.pruebaId = $('#prueba').val();

    var success = function(data){
       console.log("Success!", data);
    }
    var error = function(data){
       console.log("Error!", data);
    }
    $.ajax({
      url:'partidaasociada/get-linea',
      type:'POST',
      dataType:'json',
      data:data
   }, success, error);
});

在google chrome的控制台上,它说myFunction也没有定义。在google chrome的控制台上,它说myFunction也没有定义。谢谢,当我按下按钮时,它现在不会重新加载表单,但我认为没有以正确的方式发送值“pruebaId”,在控制台上,它说请求错误(#400):缺少必需的参数:pruebaIdYou可以将数据行切换回原来的状态:
数据:{pruebaId:$('#prueba').val()}
我没有立即看到差异。成功通话时,您希望它做什么?通常,当您发出ajax请求时,您会在收到成功或错误后执行某些代码。看起来你几乎想发布和刷新整个页面,这意味着你不需要使用ajax。它现在可以工作了!!!太多了!我只需要改变我在php函数中接收数据的方式,现在我用$\u POST接收数据,非常感谢!!谢谢,当我按下按钮时,它现在不会重新加载表单,但我认为没有以正确的方式发送值“pruebaId”,在控制台中,它表示错误的请求(#400):缺少必需的参数:pruebaidy您可以将数据行切换回原来的状态:
data:{pruebaId:$('#prueba')。val()}
我没有立即看到区别。成功通话时,您希望它做什么?通常,当您发出ajax请求时,您会在收到成功或错误后执行某些代码。看起来你几乎想发布和刷新整个页面,这意味着你不需要使用ajax。它现在可以工作了!!!太多了!我只需要改变我在php函数中接收数据的方式,现在我用$\u POST接收数据,非常感谢!!