在一页上发送并打印 PHP 数组结果?
我是一名 PHP 初学者,今天我开始学习 Mootools。我正在尝试一个自动完成搜索框,它会在您提交表单后发送一个数组。您可以输入多个名称并搜索所有名称。
我想做的是在 mootools 中获取该数组,将其发送到 PHP 并在不离开页面的情况下显示结果。
// Autocomplete initialization
var t4 = new TextboxList('form_tags_input_3', {unique: true, plugins: {autocomplete: {}}});
// sample data loading with json, but can be jsonp, local, etc.
// the only requirement is that you call setValues with an array of this format:
// [
// [id, bit_plaintext (on which search is performed), bit_html (optional, otherwise plain_text is used), autocomplete_html (html for the item displayed in the autocomplete suggestions dropdown)]
// ]
// read autocomplete.php for a JSON response example
t4.container.addClass('textboxlist-loading');
new Request.JSON({url: 'autocomplete.php', onSuccess: function(r) {
t4.plugins['autocomplete'].setValues(r);
t4.container.removeClass('textboxlist-loading');
}}).send();
这是 autocomplete.php
$response = array();
$names = array('Some name', 'Some name 2', 'etc');
// make sure they're sorted alphabetically, for binary search tests
sort($names);
foreach ($names as $i => $name)
{
$filename = str_replace(' ', '', strtolower($name));
$response[] = array($i, $name, null, '<img src="images/'. $filename . (file_exists('images/' . $filename . '.jpg') ? '.jpg' : '.png') .'" /> ' . $name);
}
header('Content-type: application/json');
echo json_encode($response);
Submit.php
<?php
print_r($_POST);
?>
我的 php:
<?php
$result['msg'] = print_r($_POST);
echo json_encode($result);
?>
这是我在 index2.php 文件中所做的更改:
<input type="submit" name="submitform" value="Submit" id="submitform" />
<p id="response"></p>
$('#submitform').addEvent('click', function(){
new Request.JSON({
url: "inc/php/json.php",
onSuccess: function(response){
$('response').set('html',+data.result);
}
}).get($('findnames'));
});
当您按提交,什么也没发生,所以显然我在某个地方犯了一个我似乎无法弄清楚的错误。
I am a PHP beginner and today I started learning Mootools. I am experimenting with a autocomplete search-box that sends out an array after you submit the form. You can type multiple names and search for all of them.
What I'm trying to do is to take that array in mootools, send it to PHP and display the results without leaving the page.
// Autocomplete initialization
var t4 = new TextboxList('form_tags_input_3', {unique: true, plugins: {autocomplete: {}}});
// sample data loading with json, but can be jsonp, local, etc.
// the only requirement is that you call setValues with an array of this format:
// [
// [id, bit_plaintext (on which search is performed), bit_html (optional, otherwise plain_text is used), autocomplete_html (html for the item displayed in the autocomplete suggestions dropdown)]
// ]
// read autocomplete.php for a JSON response example
t4.container.addClass('textboxlist-loading');
new Request.JSON({url: 'autocomplete.php', onSuccess: function(r) {
t4.plugins['autocomplete'].setValues(r);
t4.container.removeClass('textboxlist-loading');
}}).send();
Here's autocomplete.php
$response = array();
$names = array('Some name', 'Some name 2', 'etc');
// make sure they're sorted alphabetically, for binary search tests
sort($names);
foreach ($names as $i => $name)
{
$filename = str_replace(' ', '', strtolower($name));
$response[] = array($i, $name, null, '<img src="images/'. $filename . (file_exists('images/' . $filename . '.jpg') ? '.jpg' : '.png') .'" /> ' . $name);
}
header('Content-type: application/json');
echo json_encode($response);
Submit.php
<?php
print_r($_POST);
?>
My php:
<?php
$result['msg'] = print_r($_POST);
echo json_encode($result);
?>
And here are the changes I made in the index2.php file:
<input type="submit" name="submitform" value="Submit" id="submitform" />
<p id="response"></p>
$('#submitform').addEvent('click', function(){
new Request.JSON({
url: "inc/php/json.php",
onSuccess: function(response){
$('response').set('html',+data.result);
}
}).get($('findnames'));
});
When you press submit, nothing happens, so obviously I made an error somewhere that I can't seem to figure out.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你不能这样做,
print_r
直接打印数组内容到页面,所以你不能将它存储在变量中。也许您会使用这个:
只需将
SomeFunction();
更改为其他内容即可。编辑:
我检查了 Chrome 错误控制台,它的内容如下:
所以
#submitform
由于某种原因似乎无效。请尝试我的功能,使其正常工作。you cannot do this,
print_r
directly prints the array contents to page, so you cannot store it in variable.Maybe you would use this:
Just change
SomeFunction();
to something else.EDIT:
I checked Chrome error console and here´s what it says:
So
#submitform
seems not to be valid in some reason. Please try my function thing to make it work like it should.