problema ysJQueryRevolutionsPlugin

1 view
Skip to first unread message

Jos

unread,
Jan 5, 2010, 8:46:21 PM1/5/10
to symfo...@googlegroups.com
tengo una duda con

jquery_ajax_form

en primer lugar, me daba un "fatal error", diciendo que no encontraba la funcion boolean_for_javascript, busque un poco, y di con que esa funcion esta dentro de ysUtilHelper, asi que lo inclui <?php use_helper('ysUtil') ?>, y se soluciono, ahora bien.

el tema es el siguiente, este es el codigo de mi formulario

<form action="<?php echo url_for('operacion/'.($form->getObject()->isNew() ? 'create' : 'update').(!$form->getObject()->isNew() ? '?id='.$form->getObject()->getId() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
<?php if (!$form->getObject()->isNew()): ?>
<input type="hidden" name="sf_method" value="put" />
<?php endif; ?>
  <table>
    <tfoot>
      <tr>
        <td colspan="2">
          &nbsp;<a href="<?php echo url_for('operacion/index') ?>">Back to list</a>
          <?php if (!$form->getObject()->isNew()): ?>
            &nbsp;<?php echo link_to('Delete', 'operacion/delete?id='.$form->getObject()->getId(), array('method' => 'delete', 'confirm' => 'Are you sure?')) ?>
          <?php endif; ?>
          <input type="submit" value="Save" />
        </td>
      </tr>
    </tfoot>
    <tbody>
      <?php echo $form ?>
    </tbody>
  </table>
</form>
<?php echo jquery_ajax_form(
  '#finForm',
  array(
    'url' => url_for('@fin_update'),
)) ?>

pero no anda, vi el codigo que genera y no aparece en ningun lugar el <script>, he puesto la misma funcion en otro archivo y si aparece pero en este no.

y por otra parte, no estoy seguro de que hacer con el parametro "action" del <form>, me parece que estoy haciendo todo mal.

--
 Jose Vargas Paz
   AKA:   ejosvp
http://ejosvp.ok.pe

oyepez003

unread,
Jan 6, 2010, 9:10:41 AM1/6/10
to symfony-es
Si el helper ysUtil es para tener las funciones boolean_for_javascript
del helper Javascript de Symfony y json_encode de PHP....
Te recomiendo si vas a usar frecuentemente los helpers del plugins
agregarlos en el settings.yml de tu aplicacion....

En cuanto al helper jquery_ajax_form como puedes ver en la
documentacion es un formulario que no es generado por symfony... voy a
ver el comportamiento con este tipo
de formulrios sobre todo con las ultimas versiones.... por lo que veo
en tu codigo y no se si estoy diciendo algo mal es que el id del
formulario no es el mismo que el que estas pasando
a la funcion jquery_ajax_form()


el helper ajax tiene este id: #finForm

<?php echo jquery_ajax_form(
'#finForm',
array(
'url' => url_for('@fin_update'),
)) ?>

el formulario deberia tener ese id por algun lado pero no lo veo....

<form id="finForm" action="<?php echo url_for('operacion/'.($form-


>getObject()->isNew() ?
'create' : 'update').(!$form->getObject()->isNew() ?
'?id='.$form->getObject()->getId() : '')) ?>" method="post" <?php
$form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>

En cuanto a la url del helper te recomeindo la coloques como el action
del formulario:

<?php echo jquery_ajax_form(
'#finForm',
array(

'url' => url_for('operacion/'.($form->getObject()->isNew() ?


'create' : 'update').(!$form->getObject()->isNew() ?

'?id='.$form->getObject()->getId() : '')))) ?>

Para la proxima version del plugin podras pasarle el obejto form al
helper jquery_ajax_form() como primer parametro y el realizara todo
este tipo de cosas....

De todos modos dejame probar mejor este helper con los formularios de
symfony y les cuento...

Saludos.

Omar Yepez.
http://www.yepsua.com

oyepez003

unread,
Jan 6, 2010, 10:08:58 AM1/6/10
to symfony-es
Opps! si ocurrió un error. Si hay un bug en el plugin en la linea 212

function jquery_ajax_form($selector,$configurations, $submit = false ,
$isInternal = false){
$configurations['data'] = (isset($configurations['data']))?
'dataForm + "&" +' . $configurations['data'] : 'dataForm';
return add_jquery_support(
'#myForm',
'submit',
like_function(
sprintf(
'var dataForm = %s %s return %s',
jquery_serialize($selector),
jquery_ajax($configurations, $isInternal),
boolean_for_javascript($submit))));
}

deberia ser:

function jquery_ajax_form($selector,$configurations, $submit = false ,
$isInternal = false){
$configurations['data'] = (isset($configurations['data']))?
'dataForm + "&" +' . $configurations['data'] : 'dataForm';
return add_jquery_support(
$selector,
'submit',
like_function(
sprintf(
'var dataForm = %s %s return %s',
jquery_serialize($selector),
jquery_ajax($configurations, $isInternal),
boolean_for_javascript($submit))));
}

Esta modificado y en la tarde se subiran los cambios al SVN.... Como
siempre gracias Jos...

P.D. Luego del cambio probe realizar el submit del formulario con los
ejemplos de Jobeet y para que funcionara necesite:

1 Agregarle el id al formulario....
2 Eliminar el action del formulario... //
3 La url del action del formulario la coloque al opcion 'url' de la
funcrion jquery_ajax_form()....

Como ven luego de generar un modulo con doctrine:generate-module se
necesitan hacer varios cambios a las vistas y yo diria que tambien a
los actions....
por lo que una idea nuestra es crear un tercer plugin para generar los
modulos directamente con los plugins jquery y jqueryUI (Solo para
Doctrine)
pero esto se realizara una vez estos dos plugins lleguen a una etapa
bien estable...

Saludos.

Omar Yepez
http://www.yepsua.com

> Omar Yepez.http://www.yepsua.com

Reply all
Reply to author
Forward
0 new messages