Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galera.
Criei um arquivo PHP de teste aqui no meu crontab e ele funciona numa boa, mais quando eu passo um Jquery dentro do meu arquivo ele não funciona mais.
Eu preciso fazer funcionar com o Jquery.
Estou usando o serviço do dreamhost e estou usando linux.
Olha como eu trato no painel:
links -dump http://meusite.com.br/crontab/teste.php
Eu criei para rodar atravez de uma url
Aqui o meu código teste.php PHP.
Meu script funciona se chamar na url, só não funiona com o crontab
<?php
if(isset($_POST['id'])){
if($_POST['id'] == '20'){
rmdir("teste");
mkdir("teste", 0755);
}
}else{
echo'<hr/>';
echo'<input type="text" value="20" id="id" name="id" />';
echo"
<script>
$(document).ready(function(){
$.ajax({
url:'teste.php',
type:'POST',
data:{
id:$('#id').val()
},
success:function(data){
//alert(data);
}
});
});
</script>
";
}
?>E eu te pergunto, seu problema é realmente com o PHP ou com o jQuery ?
Não sei se ele omitiu o html da página dele ou se é só isso dali mesmo, se for só esse trecho de código que ele tem na página o script dele não funciona porque esta faltando o Jquery, neste caso é só adiconar ele no inicio da página
<script src="jquery-3.2.1.min.js" type="text/javascript"></script>
Então o problema foi o Jquery mesmo, o pq não consegui descobrir mais para resolver eu tirei a biblioteca e fiz tudo com PHP e dai funcionou.
Eu fiz um teste simples só para dar um echo e adicionei a biblioteca e não funcionou.
Valeu pela ajuda galera.
É uma pena que não conseguiu, mas pra você não desistir de fazer o uso dessas requisições no futuro vou te dar algumas dicas baseado no modelo que você passou.
1-Você tem que iniciar o jquery na sua página quando for utilizar as funções dele.
2-Você não precisa remover uma pasta e em seguida criá-la novamente, faça uma verificação, se não exisitr, crie:
if (!file_exists("teste"))
{
mkdir("teste", 0755);
}
3-No seu script após fazer as verificações e criar a pasta teste ele "estaciona" não faz mais nada, coloque uma função de retorno para a página anterior:
echo '<script>window.history.back(-1);</script>';
4-Se você não estivesse usando crontab poderia dar mais funcionalidade ao seu script. Por exemplo: Por que manter um valor fixo em um input se você pode solicitar o valor que quiser? limpe o valor do campo e adicione um botão de ação, depois altere seu script para agir quando o valor deste campo for alterado, neste caso troque o
<script>
$(document).ready(function(){
por
<script>
$('#id').blur(function(){
//ou
$('#botaook').click(function(){
O restante do código está ok, veja como ficou, testado e funcionando,!
<script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
<?php
if(isset($_POST['id'])){
if($_POST['id'] == '20'){
// testo se a pasta existe se nao existe crio ela
if (!file_exists("teste"))
{
mkdir("teste", 0755);
}
}
// volto para página anterior
echo '<script>window.history.back(-1);</script>';
}else{
echo'<hr/>';
echo'<input type="text" value="" id="id" name="id" />';
echo'<input type="button" value="OK" id"botaook">';
echo"
<script>
$('#id').blur(function(){
$.ajax({
url:'teste.php',
type:'POST',
data:{
id:$('#id').val()
},
success:function(data){
alert(data);
}
});
});
</script>
";
}
?>
É isso aí!

E por fim como você está agendando uma tarefa você pode trocar o método de envio de $_POST para $_GET agendando a execução direto para este script!
PS: Desconsidere o item 3 também por causa do crontab, sorry!
o jquery é só pra gravar no bd? por que não grava direto no php?