← Javascript

[Duvida] JQuery + PHP

Lida 16283 vezes

Offline

Aserty 
Membro
Mensagens 10 Gostos 0
Troféus totais: 17
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 10 Posts First Post Karma Avatar

Boas,

Estou com uns problemas ao executar código JQuery no meio de código PHP e gostaria de saber se é possivel juntar os dois e como o fazer.

Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

Sem colocares código é um pouco difícil te ajudar.
Offline

kaydara 
Membro
Mensagens 616 Gostos 1
Feedback +1

Troféus totais: 21
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 500 Posts 100 Posts

a tua dúvida revela a falta de conhecimento.

no máximo fazes echo de javascript no php para depois sim ser executado pelo browser
Offline

Aserty 
Membro
Mensagens 10 Gostos 0
Troféus totais: 17
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 10 Posts First Post Karma Avatar

Eu ja fiz isso mas nao funcionou por isso e que resolvi perguntar
Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

Eu ja fiz isso mas nao funcionou por isso e que resolvi perguntar
E então o código ? Não vamos adivinhar o que queres fazer...
Offline

Aserty 
Membro
Mensagens 10 Gostos 0
Troféus totais: 17
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 10 Posts First Post Karma Avatar

Código: (html4strict) [Seleccione]
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
$(document).ready (function() {
$("#registerFail").hide();
});
</script>

<?php
if (isset($_POST['registerButton'])) {
$registerEmail $_POST['registerEmail'];

if ($POST['registerEmail'] == "") {

        echo 
"<script type='text/javascript'>";
echo "$(document).ready( function() {";
echo "$('#registerFail').show();";
echo "});";
        echo 
"</script>";
}
else { 
}
}
?>

</head>

<body>
<div id="mainLoginRegister">
<div id="mainRegister" class="box">
   
    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
        <p id="createAccountText" class="titleBig">Create your account</p>
            <br />
            <center><hr width="300" /><br />
            <div id="registerFail" class="box" >
            <p id="invalidEmail" class="invalidLoginData">Email already registered or not valid</p>
            </div>
            </center>
        <p>Please, introduce your e-mail to create an account</p>
            <br />
            <center>
    <table border="0">
        <tr>
            <td>E-Mail:</td>
          </tr>
                <tr>
                <td><input id="" type="text" name="registerEmail" class="field" size="40" /></td>
                </tr>
                <tr>
                <td>&nbsp;</td>
                </tr>
            <tr>
            <td><input id="" type="submit" value="Register" name="registerButton" class="search-submit" /></td>
            </tr>
        </table>
            </center>
        </form>
    </div>
</div>
</body>
</html>
Offline

Pedro Magalhães 
Membro
Mensagens 397 Gostos 0
Troféus totais: 23
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts

Experimenta:

Código: [Seleccione]
<?php

if ($POST['registerEmail'] == "") { ?>


  <script type='text/javascript'>  
  $(document).ready( function() {  
    $('#registerFail').show();
  });  
  </script>
  
<?php ?>
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Depois de abrires as aspas num echo, não podes ter mais aspas dentro. Por isso é que não dá. Quer dizer, poder podes, tens é de meter antes \.
Offline

zegomes 
Membro
Mensagens 724 Gostos 0
Feedback +9

Troféus totais: 21
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 500 Posts 100 Posts

Depois de abrires as aspas num echo, não podes ter mais aspas dentro. Por isso é que não dá. Quer dizer, poder podes, tens é de meter antes \.

Mas também pode fazer isto:  echo "lalala = 'xpto' lalala";

Não sei é se é muito correcto  :-P
Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

Eu nem uso aspas duplas ( " ) tudo aspas simples ( ' ).

O código dele parece estar correcto, a única coisa que esta a faltar e o jQuery ser incluído, pelo menos no código que ele forneceu não tem.

Código: [Seleccione]
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
$(document).ready (function() {
$("#registerFail").hide();
});
</script>
 
<?php
if (isset($_POST['registerButton'])) {
$registerEmail $_POST['registerEmail'];
 
if ( ! isset($_POST['registerEmail'])) {
 
        echo 
"<script type='text/javascript'>";
echo "$(document).ready( function() {";
echo "$('#registerFail').show();";
echo "});";
        echo 
"</script>";
}
else { 
}
}
?>

Assim já vai funcionar, mas sinceramente não vejo o propósito de usar jQuery para mostrar uma caixa de texto e esconder, se fosse uma chamada em Ajax ate se compreendia, agora pós $_POST não faz muito sentido.
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Continua a estar mal o código, tens de tirar as aspas dentro das aspas ou o php vai considerar que fechaste as aspas do echo e depois abriste outra vez... A solução é mesmo meter o \ antes das aspas. Em javascript o ' não dá. Ou pelo menos estou na ideia que não...

Ou então usar as aspas simples no echo.
Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

Continua a estar mal o código, tens de tirar as aspas dentro das aspas ou o php vai considerar que fechaste as aspas do echo e depois abriste outra vez... A solução é mesmo meter o \ antes das aspas. Em javascript o ' não dá. Ou pelo menos estou na ideia que não...

Ou então usar as aspas simples no echo.
LOL tirar as aspas dentro das aspas ? Não estas a fazer sentido.

E sim o javascript aceita ' ou "

Isso só seria necessário se estivesses a utilizar echo "O valor da variável e"variável""; aqui sim iria dar erro, agora aspas simples dentro de aspas duplas e vice versa não tem problema algum.

Aspas simples dentro de aspas duplas
Código: [Seleccione]
echo "O valor da variável e '$variavel'";
Aspas duplas dentro de aspas simples, e sim, para o echo funcionar tens de colocar a variável fora das aspas simples
Código: [Seleccione]
echo 'O valor da variável e "' . $variavel . '"';
E o codigo esta correcto, pois testei e funcionou, alias tanto funcionou que ate tive de alterar
Código: [Seleccione]
if ($_POST['registerEmail'] == "") {para
Código: [Seleccione]
if ( ! isset($_POST['registerEmail'])) {
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Esquece...

Só agora é que vi que tinha um echo a cada linha... My bad... Andava a ver aspas dentro do javascript e tudo... Ontem já estava mais para lá do que para cá... :lol:
Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

Esquece...

Só agora é que vi que tinha um echo a cada linha... My bad... Andava a ver aspas dentro do javascript e tudo... Ontem já estava mais para lá do que para cá... :lol:
ehhehe
Offline

filipetm 
Membro
Mensagens 31 Gostos 0
Troféus totais: 20
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 10 Posts First Post

Boas,

Parece-me que o teu problema é que tens um typo no código.

Onde diz $POST['registerEmail'] deveria ser $_POST['registerEmail'].

Algumas dicas:

- não é recomendável usares o echo para imprimir html/javascript no lado do PHP. O teu IDE não vai interpretar isso como código html/javascript e perdes as vantagens associadas. Também será mais difícil de detectares erros no código. Deves fazer como o Pedro Magalhães exemplificou.

- penso que o código javascript não deve estar tão interligado ao código PHP como tens aí. Não deve ser o PHP a decidir se o código jQuery vai ter esta ou aquela função ou se vai executar esta ou aquela função. O código jQuery deve analisar a pagina como ela foi renderizada no browser e o PHP deve deixar lá pistas para ele decidir se vai mostrar/esconder determinada coisa. Se o #registerFail for para mostrar os erros do formulário, consegues fazer isso recorrendo apenas ao PHP, imprimindo esses erros só quando os houver.