如果我用自定义值和变量替换while循环,我可以通过数据传递,但while循环不能,我想知道为什么?我已经用硬编码的json值分别测试了while循环,它确实从数据库返回值,所以不能说php已经损坏!while循环内容没有通过ajax
对于下面的代码,
$display_string = "<table>";
$display_string .= "<tr>";
$display_string .= "<th>Name</th>";
$display_string .= "<th>Phone</th>";
$display_string .= "<th>Pricing</th>";
$display_string .= "<th>Email</th>";
$display_string .= "</tr>";
这部分显示Ajax调用启动页面,但没有下文的内容while循环:
while($row = mysql_fetch_array($qry_result)){
$display_string .= "<tr>";
$display_string .= "<td>".$row['Name']."</td>";
$display_string .= "<td>".$row['Phone']."</td>";
$display_string .= "<td>".$row['pricing']."</td>";
$display_string .= "<td>".$row['Email']."</td>";
$display_string .= "</tr>";
}
我应该更换$行[”名称'],$ row ['Phone']等等,自定义值如'james','012567890'它虽然可以工作!
我这是怎么呼应echo $display_string;
这是Ajax调用>
$("document").ready(function(){
$(".form").submit(function(){
var data = {
"action": "test"
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
type: "POST",
dataType: "html",
url: "search_subject.php", //Relative or absolute path to response.php file
data: data,
success: function(data) {
$(".the-return").html($(data));
alert("Form submitted successfully.\nReturned json: " + data["json"]);
// window.location='success.php';
}
});
return false;
});
});
我在这里提到:AJAX fails while get data from while() loop in php,但不能得到解决!
查询 //从查询字符串中获取数据 $ a = $ data ['sub']; $ b = $ data ['rate2']; $ subject_rate = array_intersect_key($ b,$ a);
foreach($subject_rate as $v=>$k)
{
$key[]=$v;
$value=$k;
}
$key2=implode(',',$key);
//build query
//echo $query = "SELECT * FROM posts WHERE subid IN $key2";
$query= "SELECT * FROM posts WHERE subid IN ('$key2')";
$qry_result = mysql_query($query) or die(mysql_error());
首先发布您的实际查询以及表架构,您可能拼写错误并且区分大小写,所以名称与名称不同。同样,你应该考虑只传回json而不是html,然后用javascript构建你的html,因为它为你的数据提供了更多的灵活性,同时也减少了负载。 – Augwa
你的意思是说SQL,HTML工作正常,但不是PHP? – Aviz
@Augwa,发布了查询,但我不认为问题在于它,因为它在我测试时起作用。它只是没有被传递到另一个页面..我曾尝试通过JSON传递,但它读取'未定义'的输出。 – sweety