PHP-Hispano.net Comunidad hispana de desarrollo web

Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?

17 usuarios Online (0)

Darse de alta en la web | Recuperar password   
Inicio / Foros / Ajax / Problema con el "?"

Problema con el "?"

8 respuestas 716 visitas Categoría Ajax

Problema con el "?"

Avatar de cesarpunk
* * * * * * *

(Nivel 2 - 45 posts)

#0 Offline cesarpunk Usuario 04 ene 10
Hola y feliz año a todos.... bueno sigo con un problema para poder validar formularios con la librería prototype que hasta ahora no he podido resolver ni saber a que se debe.... la cuestión es simple. Cuando escribo "Hola" me retorna que el textbox está lleno.... pero si escribo "Hola?" ... me retorna que está vacio... la verdad no entiendo porque, nosé como recibe la librería ese parametro o como interpreta el "?" aqui les dejo un formulario de ejmeplo:


<form name="frmcontacto" id="frmcontacto" action="recibe_contactenos.php" method="post" onSubmit="return false;"><table border="0" cellspacing="0" cellpadding="0">
                          <tr>
                            <td valign="top"><table style="height:220px;" border="0" cellpadding="0" cellspacing="0">
                              <tr>
                                <td align="left" class="TN11">Nombre o razón social: *</td>
                                </tr>
                              <tr>
                                <td><input name="nombre" type="text" class="InputText" id="nombre" style="height:20px; width:300px;" maxlength="100" /></td>
                              </tr>
                              <tr>
                                <td>&nbsp;</td>
                              </tr>
                              <tr>
                                <td align="left" class="TN11">Dirección Postal: *</td>
                              </tr>
                              <tr>
                                <td><input name="direccion" type="text" class="InputText" id="direccion" style="height:20px; width:300px;" maxlength="200" /></td>
                              </tr>
                              <tr>
                                <td>&nbsp;</td>
                              </tr>
                              <tr>
                                <td align="left" class="TN11">Teléfonos: *</td>
                              </tr>
                              <tr>
                                <td><input name="telefono" type="text" class="InputText" id="telefono" style="height:20px; width:145px;" maxlength="20" />
                                  <input name="telefono2" type="text" class="InputText" id="telefono2" style="height:20px; width:145px;" maxlength="20" /></td>
                              </tr>
                              <tr>
                                <td>&nbsp;</td>
                              </tr>
                              <tr>
                                <td align="left" class="TN11">E-mail: *</td>
                              </tr>
                              <tr>
                                <td><input name="email" type="text" class="InputText" id="email" style="height:20px; width:300px;" maxlength="100" /></td>
                              </tr>
                            </table></td>
                            <td width="26"></td>
                            <td valign="top"><table style="height:220px" border="0" cellpadding="0" cellspacing="0">
                              <tr>
                                <td align="left" class="TN11">Requerimiento: *</td>
                              </tr>
                              <tr>
                                <td valign="top"><textarea name="requerimiento" rows="6" class="InputText" id="requerimiento" style="width:300px;"></textarea></td>
                              </tr>
                              <tr>
                                <td align="center" class="TA11">* Todos los campos marcados son obligatorios</td>
                              </tr>
                              <tr>
                                <td height="20" align="center" valign="middle" class="TR11"><div id="respuesta">&nbsp;</div></td>
                              </tr>
                              <tr>
                                <td height="30" align="right" valign="bottom"><input type="submit" name="Envia" id="Envia" value="Enviar" class="buttonForm" onClick="sendRequest()" /></td>
                              </tr>
                              
                            </table></td>
                          </tr>
                        </table>
                        </form>



Y esta es la función prototype:


function sendRequest() {
new Ajax.Request("recibe_contactenos.php",
{
method: 'post',
parameters: 'nombre='+$F('nombre')+'&direccion='+$F('direccion')+'&telefono='+$F('telefono')+'&telefono2='+$F('telefono2')+'&email='+$F('email')+'&requerimiento='+$F('requerimiento'),
onCreate : function startLoading() {
            $('respuesta').innerHTML= '<img src="images/sending.gif" width="16" height="16" align="absmiddle">';
            Form.Element.disable("Envia");
            },
onComplete: function showResponse(req){
            $('respuesta').innerHTML= req.responseText;
            Form.Element.enable("Envia");
                if(req.responseText == "success") {
                    $('mensaje_contacto').innerHTML= 'bien'; 
                }
            }
});
}



Y eso sería todo, lo demás es validación en el lado del servidor.... espero me puedan ayudar en este problema tan raro. Muchas gracias.

Re: Problema con el "?"

Avatar de Eloy8857
* * * * * * *

(Nivel 4 - 445 posts)

#1 Offline Eloy8857 Usuario 04 ene 10
No sabría decirte cómo hacerlo en javascript pero te animo a que lo averigües tú: tienes que codificar el value de los input en codificación de URL. Hay caracteres que tienen un significado especial o que simplemente no pueden ir en una URL. Por ejemplo, imagina la URL http://mipagina.com/index.php?seccion=noticias&noticia=45. Si en los parámetros le metes un ? te puede quedar http://mipagina.com/index.php?seccion=noticias?&noticia=45&resaltar=economia y eso como puedes ver está mal formado.

En PHP hay funciones para eso, como urlencode o rawurlencode, y en javascript seguro que encuentras algo también.

Saludos.

Restless Souls Online: se viene un gran MMORPG

Asunto

Avatar de cesarpunk
* * * * * * *

(Nivel 2 - 45 posts)

#2 Offline cesarpunk Usuario 04 ene 10
Hola gracias por responder... el urlencode en js es escape() pero hay varias cosas... La primera es que el escape() no puedo usarlo en la seccion de parameters y no se si lo usarán en el framework... Y la segunda es que a pesar que usa el metodo post falla... pero en funciones sencillas de ajax los parametros que pasan en send() llegan sin problemas asi escriba otros caracteres

Re: Problema con el "?"

Avatar de panino
* * * * * * *

(Nivel 7 - 1463 posts)

#3 Offline panino Moderador 04 ene 10
Exacto lo que señala Eloy. Investiga acerca de escape o encodeURI o encodeURIComponent:
http://www.w3schools.com/jsref/jsref_escape.asp
http://www.w3schools.com/jsref/jsref_encodeURI.asp
http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp

www.disegnocentell.com.ar

Re: Problema con el "?"

Avatar de panino
* * * * * * *

(Nivel 7 - 1463 posts)

#4 Offline panino Moderador 04 ene 10
No entiendo bien porqué no podés usar escape o similares en parameters. Qué impide hacer esto?

parameters: 'nombre='+escape($F('nombre'))+'&direccion='+escape($F('direccion'))+'&telefono='+escape($F('telefono'))+'&telefono2='+escape($F('telefono2'))+'&email='+escape($F('email'))+'&requerimiento='+escape($F('requerimiento'))

www.disegnocentell.com.ar

Re: Problema con el "?"

Avatar de cesarpunk
* * * * * * *

(Nivel 2 - 45 posts)

#5 Offline cesarpunk Usuario 04 ene 10
Hola gracias por responder... jeje no había intentado la funcion escape() en esa parte... crei que me habia salido algun tipo de error... pero funcionó!!! ahora si llegan correctamente esos simbolos, muchas gracias!

Re: Problema con el "?"

Avatar de cesarpunk
* * * * * * *

(Nivel 2 - 45 posts)

#6 Offline cesarpunk Usuario 07 ene 10
Hola denuevo....


Viendo denuevo el código hay un problema con el escape... cuando escribo las Ñ o Tildes me sale el siguiente error:


"el identificador URI para descodificar no tiene una codificación válida"

que significa este error?, hay otro comando a parte del escape() ?

Re: Problema con el "?"

Avatar de panino
* * * * * * *

(Nivel 7 - 1463 posts)

#7 Offline panino Moderador 08 ene 10
Bueno, en el post #3 de este mismo hilo tenés otras 2 opciones. Esto dice Microsoft acerca de ese error, quizá te sirva para revisar algo: http://msdn.microsoft.com/es-es/library/3aztces0.aspx

www.disegnocentell.com.ar

Re: Problema con el "?"

Avatar de cesarpunk
* * * * * * *

(Nivel 2 - 45 posts)

#8 Offline cesarpunk Usuario 08 ene 10
Gracias por responder panino, no me fije bien del post 3, ahora se de que se trata el error con el link que me mandaste ... además pude resolver el problema con el encodeURIComponent() . Saludos!

Responder mensaje

Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano, :: Registrar ::
Login / Password   

php-hispano.net 2002 - 2010 | XHTML 1.0
Datos Legales | Webmaster