使用symfony 1.4的ajax问题

时间:2011-07-25 20:51:45

标签: ajax symfony-1.4 jobeet

当我在symfony 1.4中使用ajax时,我遇到了一个非常奇怪的问题。我已经使用了jobeet示例(第18天),但它不起作用

这是我的indexSuccess.php

<script type="text/javascript" >

$(document).ready(function(){

$('#buscador').keyup(function(key)
{
       if (this.value.length >= 3 || this.value == '')
       {
           $('#per').load( $(this).parents('form').attr('action'),
                        { query: this.value + '*' });
       }
   });
});
</script>

<h1>Lista de personas</h1>

 <p>Busque o cree registros de personas en el sistema (Estudiantes, funcionarios,  docentes).</p>

<form action="<?php echo url_for('personas/index')?>">
<table>
    <tr>
        <td><input type="text" name="buscar" id="buscador"/></td>
        <td><a href="<?php echo url_for('personas/index')?>"><img src="/images/iconos/Search.png"/></a></td>
    </tr>
</table>
</form>
<p style="font-size: 11px;color: gray;">Digite un nombre, apellido o número de identificación para buscar</p>

<div class="per" id="per">
<?php echo include_partial('personas/buscaPersonas',array('personass'=>$personass)); ?>
</div>

jquery脚本检测输入中的字符,当我写3个或更多字符时,它应该加载id ='per'的div。这是我的personasAction.class.php

public function executeIndex(sfWebRequest $request)
{

 $this->personass = array();

 if($request->isXmlHttpRequest())
       {    
            $this->personass = $this->getRoute()->getObjects();
            return $this->renderPartial('personas/buscaPersonas', array('personass'=> $personass));
       }
 }

当我加载页面时,我不想看到任何结果。所以,当我进行ajax调用时,我应该重新加载所有结果的部分“_buscaPersonas.php”(仅用于尝试),但是我加载了_form.php部分。

这是我的部分:

 <table>
 <?php foreach($personass as $personas): ?>
 <tr>
 <td colspan="5" class="tituloTD"><?php echo $personas->getNombre(); ?></td>
 </tr>
 <tr>
 <th>Numero identificación: </th><td><?php echo $personas->getNumeroid() ?></td>
 <th>Email: </th><td><?php echo $personas->getEmail(); ?></td>
 <td><a href="<?php echo url_for('personas/edit?id='.$personas->getId()) ?>"> <img src="/images/iconos/editar.png"/></a></td>
    </tr>
        <?php endforeach; ?>
   </table>

我试图找到问题所在,但我没有得到它。当我使用按钮进行正常搜索时,它会工作,加载正确的部分,但加载其他部分的白色ajax。

请有人知道我的错误是什么。

感谢

2 个答案:

答案 0 :(得分:0)

我认为这是由于你的加载ajax函数的路径:

       $('#per').load( $(this).parents('form').attr('action'),
                    { query: this.value + '*' });

$(this).parents('form')。attr('action')肯定是错误的值。 试试这个:
url_for('personas / index')

答案 1 :(得分:0)

最后我发现了错误。我不知道发生了什么,但如果我发送带有加载功能的数据我有错误。所以我不得不使用url发送数据,并且正常工作:)

 if (this.value.length >= 3 || this.value == '')
 { 
   $('#per').load( "<?php echo   url_for('personas/index')?>"+"?query="+this.value);
 }