开发者

Send and print PHP Array result on one page?

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.

Here is the original file

// 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');
开发者_如何学JAVA}}).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);
?>

And here is what I did

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.


$result['msg'] = print_r($_POST);

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:

<input type="button" onclick="SomeFunction(); name="submitform" value="Submit" id="submitform" />

Just change SomeFunction(); to something else.

EDIT: I checked Chrome error console and here´s what it says:

Uncaught TypeError: Cannot call method 'addEvent' of null

So #submitform seems not to be valid in some reason. Please try my function thing to make it work like it should.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜