J'ai 2 fichiers (call.php et post.php) et en utilisant ajax passer la valeur de l'appel à la poste, et je veux obtenir la valeur de retour de la poste, mais cela ne fonctionne pas. quand je change de poste, modifiez "return" à "echo", ça marche, mais je ne sais pas pourquoi. quelqu'un peut-il m'aider?
Des exemples seraient les plus appréciés.Ajax valeur de retour avec retour ne fonctionne pas
call.php
<script type="text/JavaScript">
$(document).ready(function(){
$('#submitbt').click(function(){
//var name = $('#name').val();
//var dataString = "name="+name;
var dataPass = {
'name': $("#name").val()
};
$.ajax({
type: "POST",
url: "post.php",
//data: dataString,
data: dataPass,//json
success: function (data) {
alert(data);
var re = $.parseJSON(data || "null");
console.log(re);
}
});
});
});
</script>
post.php:
<?php
$name = $_POST['name'];
return json_encode(array('name'=>$name));
?>
mise à jour:
par contraste quand j'utilise MVC "retour" sera le feu.
public function delete() {
$this->disableHeaderAndFooter();
$id = $_POST['id'];
$token = $_POST['token'];
if(!isset($id) || !isset($token)){
return json_encode(array('status'=>'error','error_msg'=>'Invalid params.'));
}
if(!$this->checkCSRFToken($token)){
return json_encode(array('status'=>'error','error_msg'=>'Session timeout,please refresh the page.'));
}
$theme = new Theme($id);
$theme->delete();
return json_encode(array('status'=>'success'));
}
$.post('/home/test/update',data,function(data){
var retObj = $.parseJSON(data);
//wangdongxu added 2013-08-02
console.log(retObj);
//if(retObj.status == 'success'){
if(retObj['status'] == 'success'){
window.location.href = "/home/ThemePage";
}
else{
$('#error_msg').text(retObj['error_msg']);
$('#error_msg').show();
}
});
Lorsque vous mettez quelque chose dans le flux en PHP, utilisez 'echo'. 'return' est utilisé pour les fonctions dans PHP – NoLifeKing