2015-05-02 62 views
0

如果我用自定义值和变量替换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()); 
+1

首先发布您的实际查询以及表架构,您可能拼写错误并且区分大小写,所以名称与名称不同。同样,你应该考虑只传回json而不是html,然后用javascript构建你的html,因为它为你的数据提供了更多的灵活性,同时也减少了负载。 – Augwa

+0

你的意思是说SQL,HTML工作正常,但不是PHP? – Aviz

+0

@Augwa,发布了查询,但我不认为问题在于它,因为它在我测试时起作用。它只是没有被传递到另一个页面..我曾尝试通过JSON传递,但它读取'未定义'的输出。 – sweety

回答

1

尝试

mysql_fetch_assoc()

,而不是

mysql_fetch_array()

而且还为不在“search_subject.php”文件上得到echo $ display_string

+0

现在可以!我从来不知道这会带来如此多的不同!非常感谢 – sweety

+0

不客气..愚蠢的错误是痛苦的a **有时 – Aviz

+0

这是如何解决OPs问题? mysql_fetch_array()与mysql_fetch_assoc()获取的内容相同,除了它也有索引的列...所以如果表有3列'id,name,status',那么数组将包含以下键'['id ','name','status',0,1,2]' – Augwa