当我在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。
请有人知道我的错误是什么。
感谢
答案 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);
}