我的应用程序中没有ajax输出

时间:2014-03-11 10:10:14

标签: php jquery zend-framework

我正在尝试从表格中的ajax搜索功能发回选定的项目。我的帖子功能运行良好它在我的firebug网络中有200个状态,这就是它在我的html中发布的内容:null {“sp”:null,“serviceprovider”:null}和response:null {“sp”:null ,“serviceprovider”:null}。根据我的申请,我什么也没收到。这是我用

称呼的代码

控制器

public function postserviceproviderAction()

    {
        $form = new Form_IndustrialTable();       
        $this->view->form = $form;

        if(!$form->isValid($_POST)) 
        {
             $values=$form->getValues();
        }

        $sp = $this->getRequest()->getPost('serviceprovider', null); //problem lies here I think


        $mdlserviceprovider = new Model_ServiceProviders();
        $serviceprovider  = $mdlserviceprovider ->getName($sp);


        $rtn_array= array('serviceprovider ' => $serviceprovider);       


         $this->_helper->layout->disableLayout();
         $this->_helper->viewRenderer->setNoRender();

        echo Zend_Json::encode($rtn_array);
    }

模型

public function getName($id)
    {
        $select = $this->select();
        $select->where('service_provider_id = ?', $id);

        var_dump($mdlserviceprovider);
        return $result['service_provider_name'];
    }

PHTML

$('#add1').click(function(){
                  $.ajax({
                       url:'<?php echo $this->baseUrl()?>/ajax/postserviceprovider',
                       type:'post',
                       dataType: "json",
                       data:{   'serviceprovider':$('#service_provider_name').val()},       
                       success:function(data){
                         var row = '<tr><td>' + data["serviceprovider"] + '</td></tr>';
                         $('#t1').append(row);
                        //alert();  
                      }               
                  });
                });

HTML表格

<div class="col-md-6" style="margin-left: 0;">
<table class='spreadsheet dataTable' cellpadding='0' cellspacing='' id="t1">
<thead> 

<tr role="row">
<th>ENTER SERVICE PROVIDER USED</th>

</tr>

<td><?php echo $this->form2->search;?></td>
</thead>    
</table>
<input id='add1' align="right" type="button" name='Add' value="+Add"></input>   
</div>

提前致谢

2 个答案:

答案 0 :(得分:1)

尝试

$sp = $this->getRequest()->getParam('serviceprovider');

可选择使用ajax:

data: 'serviceprovider=' + $("#service_provider_name").val(),    

答案 1 :(得分:0)

首先,如果代码不能重写为(或类似):

if ( $form->isValid($_POST) ) 
{
    $values = $form->getValues();
    $sp = (!empty(values['serviceprovider']) ? values['serviceprovider'] : '';
    if (!empty($sp)) {
        $mdlserviceprovider = new Model_ServiceProviders();
        $serviceprovider  = $mdlserviceprovider ->getName($sp);
        $rtn_array= array('serviceprovider ' => $serviceprovider);
    }
}

如果表单无效,尝试使用POST超级全局检索表单中的值似乎很奇怪。热衷于获得您的反馈。