如果你可以编辑标题,请做!
修订版!!! 这是main.php
$(document).ready(function(e)
{
$("#searchForm").submit(function(e)
{
e.preventDefault();
$("#result").load("process_search.php",{"searchKeyID":$("#searchKeyID").val()}, function(response,status)
{
alert(response);
});
});
});
<body>
<form id="searchForm" method="post">
<table>
<tr>
<td> <input type="text" id="searchKeyID" /> </td>
<td> <input type="submit" id="searchButtonID" value="Search" /> </td>
</tr>
</table>
</form>
<div id="result"></div>
</body>
这是process_search.php
//search is done
echo json_encode($results);
print_r将以无组织的方式向我显示数组的内容。我完全清楚我可以在有组织的方式中在process.php中回显它,以便它作为一个合适的数据组织出现在main.php中。但是,我希望array / obj返回main和IN MAIN,进行有组织的打印。这是我放的地方?????在我的代码中
我该怎么做?
我遇到了这个link。让我更加困惑。我不知道得到57票的答案如何运作。它是如何打印第二个索引的。我按原样复制代码并运行它。它印有Damskie和Muskie。它是如何知道要追踪的指数/值?
如果我键入警告(响应);代替问号,它有效。我看到整个obj /数组正确组织。我确实看到了打印数组的主题,但不像记录那样。 ...我忘了寻找在jquery中打印记录的网站:D立刻看看
编辑:我想出了我所包含的链接中的代码是如何工作的。
答案 0 :(得分:3)
我建议使用 $.post() 而不是 $。load()。如果您这样做,请尝试使用以下代码:
$(document).ready(function(e) {
$("#searchForm").submit(function(e) {
e.preventDefault();
$.post("process_search.php", {searchKeyID:$("#searchKeyID").val()},function (data) {
// data is now the same Array as the one you had in process_search.php ; You can now work with it as you like ; e.g.:
alert(data[0]);
},"json");
});
});
<body>
<form id="searchForm" method="post">
<table>
<tr>
<td> <input type="text" id="searchKeyID" /> </td>
<td> <input type="submit" id="searchButtonID" value="Search" /> </td>
</tr>
</table>
</form>
<br />
<br />
<div id="result"></div>
</body>
执行此操作时,您需要更改 process_search.php 中的打印:
print_r($result);
为:
echo json_encode($result);
答案 1 :(得分:0)
好的,首先,感谢zombiecode提供帮助。他的回答有助于我达成的解决方案。
我有从数据库中检索到的记录。我想以div中的表格的形式打印这些。有两种解决方案:在process_search.php中回显表,它将出现在mainpage.php中使用load()方法的div容器中。第二种解决方案是在mainpage.php中接收记录,并使用jquery动态创建表。
第一种解决方案很简单。这是我遇到麻烦的第二个。而我正在“试验”。
这是使用我自己的代码的解决方案
<script>
$(document).ready(function(e)
{
$("#searchForm").submit(function(e)
{
e.preventDefault();
//linebegin
$("#result").load("process_search.php", {searchKeyID:$("#searchKeyID").val()}, function (response,status)
{
var x = $.parseJSON(response); //1
var table = $('<table></table>');
for (i = 0; i < x.length; i++)
{
var row = $('<tr></tr>').text(x[i].email);
table.append(row);
}
$('#result').html(table); //3
}); //lineend
});
});
</script>
<body>
<form id="searchForm" method="post">
<table>
<tr>
<td> <input type="text" id="searchKeyID" /> </td>
<td> <input type="submit" id="searchButtonID" value="Search" /> </td>
</tr>
</table>
</form>
<div id="result"></div>
</body>
在process_search.php中
//do search using any method you want
//echo the result
//4
echo json_encode($rows); // <--- zombiecode's contribution
在// 4中,如果你将zombie的代码更改为print_r($ rows),我将会看到: - 数组([0] =&gt;数组([id] =&gt; 13 [名称] =&gt; abc [电子邮件] =&gt; issmon441@hotmail.com [用户名] =&gt; wildheart25c [密码] =&gt; aaaaaa) )
难看。
这是我回声json并解析它时的样子(mainpage.php // 1) [{ “ID”: “13”, “名称”: “ABC”, “电子邮件”: “issmon441@hotmail.com”, “用户名”: “wildheart25c”, “密码”: “AAAAAA”}]
好多了吧?
这里有一个问题。方法LOAD在指定的位置/容器中打印已检索的内容:$(“#result”)。load(“process_search.php”,etcetc)。这就是为什么我写这条线// 3。它会写出来。所以我打印/显示两次。数组的方式和数组的内容以我想要的方式。
我假设这就是为什么僵尸建议我使用post而不是load。除非有其他原因。这link也有帮助 如果还有其他原因请告诉我。
如果我想使用zombie的答案,我将// linebegin和// lineend之间的内容与此交换
$.post("process_search.php", {searchKeyID:$("#searchKeyID").val()},function (data)
{
$("#result").append(data[0].email); //5
},"json");
我向你展示了“丑陋”的阵列,以及在JSON中它如何让你看起来更好更容易。为了容纳僵尸的代码,如果我想打印数据以查看“更容易更好”的内容,我输入
alert( JSON.stringify( data ) );
如果我想仅查看第一张唱片
alert( JSON.stringify( data[0] ) );
在// 5中我打印对象中第一条记录的电子邮件值。 我可以说数据[0]并且它将打印整个数组。因为我有一条记录返回,所以它是data0。如果我有更多记录,那么data1 data2等等。
您可以使用this主题中的答案打印表格。你需要做一些小改动。
我希望这能清除所有人。