2012-10-31 35 views
-4

嗨我搜索很多从PHP返回得到一个回应,如果这个回应是好的做一些事情,如果它的假做别的事情(!!!!!!!!当我有其他的输出PHP的!!!!! !) 这是我的索引文件这个json必须工作吗?

<head> 
<script src="jquery-1.7.2.js" type="text/javascript"></script> 
<script src="js.js" type="text/javascript"></script> 
</head> 
<body> 
<p> click </p> 
<input type="text" id="who"> 
<br> 
<input type="text" id="why"> 
<div id="bg" align="center"> 
</div> 
</body> 

这是我的JS文件

$(document).ready(function(){ 
    $('p').click(function(){ 
     var who = $('input#who').val(); 
     var why = $('input#why').val();  
     $.post('file.php',{who:who,why:why},function(data) { 
    if(data.success){ 
     alert(data.message); 
    } 
    else{ alert('ERROR:' + data.message); 
    } 
}); 




    }); 
}); 

,这是我的file.php

<?php 
$response = array('success' => 'true', 
    'code' => "jQuery('#bg').html('\"Javascript\", \"json\", \"PHP\"');"); 
echo json_encode($response); 
?> 

我的问题: 1 - 这是为什么不工作,我得到警报(错误:undifined) 2 - 我如何从php文件得到一些结果,当它有其他的输出 这样的:

<?php 
echo "1"; 
echo "2"; 
echo "3"; 
and now echo that json 
?> 

感谢:(

+1

omg man。通常最好在最后放一个笑脸。 :) – DarthVader

+0

'data.success'应该至少工作,尽管'alert(data.message)'将失败,因为数据中没有“消息”。尝试从PHP文件发送一个'Content-type:application/json'头文件。 –

回答

3

why this is not work i get alert (error:undifined)

你必须告诉jQuery响应是JSON。您可以通过传递'json'作为第四参数如愿$.post[docs]或由PHP设置正确的响应头:

header('Content-Type: application/json'); 

或者你可以分析自己与jQuery.parseJSON[docs]响应。

how i can get some result from that php file when its have other output like this

有没有简单的方法。该响应不再有效,因此您必须以某种方式自己解析它。你应该避免这样做,并返回所有的JSON。

+0

'你必须告诉jQuery'。呃不,你没有明确告诉它是什么,它猜测数据类型;这个问题实际上是在JSON前面的'“123”:) –

+0

@Jack:我不认为jQuery试图猜测内容类型是否设置为HTML。至少这是很多问题的根源。响应中的无效数据是第二个问题,与第一个问题无关。 –