我想拨打ajax
并显示其回复:
<script type="text/javascript">
function test() {
var pk = $('#salle_code').val();
var donne = {pk:pk};
var ret = $.ajax({
data: donne,
type: "POST",
url: "<?php echo HTTP_AJAX ?>salle/testAjax.php",
async: false
}).responseText;
return $.trim(ret);
}
$(document).ready(function(){
$('#salle_code').on("blur", function() {
if ($('#salle_code').val() != "") {
alert(""+test());
}
});
});
</script>
ajax的代码:
<?php
$critere = array();
$critere['salle_code'] = $_POST['pk'];
$ret = Salle::lireParCritere($critere);
echo "111111111111111";
?>
在运行时,警报显示空白结果!那么如何使用Phalcon和ajax以及模型?
答案 0 :(得分:2)
使用以下代码并检查浏览器控制台以获取响应
$.ajax({
data: donne,
type: "POST",
url: "<?php echo HTTP_AJAX ?>salle/testAjax.php",
async: false
success: function (data) {
console.log(data)
},
error: function (textStatus, errorThrown) {
console.log(textStatus + " : " + errorThrown)
}
});
答案 1 :(得分:1)
首先,您需要为AJAX请求定义路由,例如/salle/test
:
$router->add('/salle/test', [
'controller' => 'salle',
'action' => 'test',
))->beforeMatch(function ($uri, $route) {
if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'xmlhttprequest') {
return false;
}
return true;
});
然后创建你的行动:
public function testAction()
{
// some work ..
$this->response->setJsonContent(json_encode(['foo' => 'bar']));
return $this->response;
}
然后测试:
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript">
function test() {
var response = $.ajax({
type: "POST",
data: {},
url: '/salle/test',
success:function(results) {
console.log(results);
}
});
return response;
}
$(document).ready(function(){
console.log(test());
});
</script>
答案 2 :(得分:0)
@Klay有一个非常简单的解决方案:我在实际视图的控制器内创建了一个ajax动作。