Отправить и распечатать результат PHP Array на одной странице? - PullRequest
1 голос
/ 14 сентября 2011

Я новичок в 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')); 


});

Когда вы нажимаете «Отправить», ничего не происходит, поэтому, очевидно, я где-то допустил ошибку, которую, похоже, не могу понять.

1 Ответ

0 голосов
/ 14 сентября 2011
$result['msg'] = print_r($_POST);

вы не можете сделать это, print_r напрямую печатает содержимое массива на странице, поэтому вы не можете сохранить его в переменной.

Может быть, вы бы использовали это:

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

Просто измените SomeFunction(); на что-то другое.

EDIT: Я проверил консоль ошибок Chrome и вот что она говорит:

Uncaught TypeError: Cannot call method 'addEvent' of null

Так что #submitform, похоже, не является действительным по какой-то причине. Пожалуйста, попробуйте мою функцию, чтобы она работала так, как должна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...