<?php
require_once ('../phpQuery/phpQuery.php');
// phpQuery::$debug = true;
$form = <<<EOF
<form>
  <input name='input-example'>
  <input name='array[array-example]'>
  <textarea name='textarea-example'></textarea>
	<select name='select-example'>
    <option value='first'></option>
	</select>
  <input type='radio' name='radio-example' value='foo'>
  <input type='checkbox' name='checkbox-example' value='foo'>
</form>
EOF;
$doc = phpQuery::newDocumentHTML($form);
$inputs = $doc['form > *'];
// creates array from input names
// $results = $inputs->get(null,
// create_function('$node', 'return $node->getAttribute("name");')
// );
$results = array();
foreach ($inputs as $node) {
    $node = pq($node);
    $name = $node->attr('name');
    $results[$name] = false;
    $node->change(new CallbackReference($results[$name]));
}
$inputs->not('select,:checkbox,:radio')
    ->val('new value')
    ->end()
    ->filter('select')
    ->val('first')
    ->end()
    ->filter(':checkbox')
    ->val(array(
    'foo'
))
    ->end()
    ->filter(':radio')
    ->val(array(
    'foo'
))
    ->end();
foreach ($results as $name => $result) {
    print $result ? "Test for '$name' PASSED :)<br />\n" : "Test for '$name' <strong>FAILED</strong> !!!<br />\n";
}