Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Biel.

saida php em codigo javascript

Recommended Posts

boa tarde a todos. Direto ao ponto. Pessoal o codigo php abaixo tem essa saida
setembro outubro novembro dezembro
<?php
setlocale(LC_ALL, 'portuguese');
date_default_timezone_set('America/Sao_Paulo');

$inicio = strtotime(date('d-m-Y'));
$fim    = strtotime("+4 month",$inicio); 

while($inicio < $fim){
	$inicio = strtotime("+1 month", $inicio); 
	 $mes = strftime('%B', $inicio); 
      echo $mes; 
	 }
?>

Como faço para exibir a mesma saida ou pegar a saida do php no codigo javascript e que funcione. Pessoal gostaria se possível de exemplos práticos, pois termos técnicos para quem está começando só dificulta as coisas. Obrigado! :D

var mapA = {
		'setembro':  '2016',
		'outubro':   '2016',
		'novembro':  '2016',
		'dezembro':  '2016',
		}; 

sem a necessidade de colocar no codigo javascript setembro outubro novembro dezembro

<script type="text/javascript">
(function(document){
  'use strict';
  var $mes = document.querySelector('select[name="mes"]'),
      $ano = document.querySelector('select[name="ano"]');
// ----------------------------------------------------------
var mapA = {
		'setembro':  '2016',
		'outubro':   '2016',
		'novembro':  '2016',
		'dezembro':  '2016',
		}; 
  
// ----------------------------------------------------------

  function selected($select, value) {
    var $options = $select.getElementsByTagName('option');
 
    for(var i=0; i < $options.length; i++) {
      if ($options[i].value === value) {
        return $options[i].selected = true;
      }
    }
  }
// ----------------------------------------------------------
  $mes.addEventListener('change', function(){
    var v = this.value;
    selected($ano, mapA[this.value]);
  });
// ---------------------------------------------------------- 
}(document));
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou você faz ajax, ou você imprime com php dentro do javascript.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou você faz ajax, ou você imprime com php dentro do javascript.

William tentei de varias formas imprimir dentro do javascript o resultado php sem sucesso.

Se não for possivel resolver com php e for possível resolver com ajax seria uma boa. Tudo que eu quero é que a coisa funcione sem a necessidade de colocar manualmente no codigo javascript setembro outubro novembro dezembro

<?php
setlocale(LC_ALL, 'portuguese');
date_default_timezone_set('America/Sao_Paulo');

$inicio = strtotime(date('d-m-Y'));
$fim    = strtotime("+4 month",$inicio); 

$abre  =  ' var mapA = {  <br /> ';
$fecha =  ' }; ';

echo $abre;

while($inicio < $fim){
	$inicio = strtotime("+1 month", $inicio); 
	 $mes = strftime('%B', $inicio); 
	 $ano = strftime('%Y', $inicio);
	 $resultado =  "'" .$mes. "'" . ' : ' . "'" .$ano. "'" . ',' . '<br />';
?>

<?php 
echo $resultado;
}
?>

<?php echo $fecha;?>

imprime
var mapA = { 
'setembro' : '2016',
'outubro'  : '2016',
'novembro' : '2016',
'dezembro' : '2016',
};

......

<script type="text/javascript">
(function(document){
  'use strict';
  var $mes = document.querySelector('select[name="mes"]'),
      $ano = document.querySelector('select[name="ano"]');
// ----------------------------------------------------------

var mapA = {
		'setembro':  '2016',
		'outubro':   '2016',
		'novembro':  '2016',
		'dezembro':  '2016',
  }; 
  
// ----------------------------------------------------------

  function selected($select, value) {
    var $options = $select.getElementsByTagName('option');
 
    for(var i=0; i < $options.length; i++) {
      if ($options[i].value === value) {
        return $options[i].selected = true;
      }
    }
  }
// ----------------------------------------------------------
  $mes.addEventListener('change', function(){
    var v = this.value;
    selected($ano, mapA[this.value]);
  });
// ---------------------------------------------------------- 
}(document));
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra opção é fazer o mesmo algoritmo de 4 meses no próprio javascript direto.

O que me parece bem melhor.

seu php não vai funcionar, porque você tá imprimindo tags <br> no meio do js, isso não faz sentido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra opção é fazer o mesmo algoritmo de 4 meses no próprio javascript direto.

O que me parece bem melhor.

seu php não vai funcionar, porque você tá imprimindo tags <br> no meio do js, isso não faz sentido.

william estou muito ansioso para resolver esta tarefa. fazer o mesmo algoritmo de 4 meses no próprio javascript é uma boa. O problema é que eu não tenho a minima ideia de como fazer isso com javascript. Javascript pra me ainda é um mundo desconhecido. Não é por falta de interesse. é que abraçar php, javascript, c, ,java e outros de uma vez só não dar para aprender uma linguagem a fundo. Quero dominar bem o php depois pular para javascript. Se você puder quebrar esse galho ficaria muito grato. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não sei se entendi muito bem, mais eu fiz um teste aqui, faz o teste e ver se isso serve.

Olha o código.

PHP

<?php
setlocale(LC_ALL, 'portuguese');
date_default_timezone_set('America/Sao_Paulo');

$inicio = strtotime(date('d-m-Y'));
$fim    = strtotime("+4 month",$inicio);

while($inicio < $fim){
    $inicio = strtotime("+1 month", $inicio);
    $mes = strftime('%B', $inicio);
    $ano = strftime('%Y', $inicio);
    $resultado =  "'" .$mes. "'" . ' : ' . "'" .$ano. "'" . ','.'<br/>' ;

    echo $resultado;
}
?>

HTML

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Testando</title>
    <script type="application/javascript" src="../../jquery-1.7.2.min.js" ></script>
</head>
<body>
   <script>
       (function($){
           $(window).on("load",function(){
               $.ajax({
                   url:'index.php',
                   success:function(data){
                      $('.recebe_resultado').html('var mapA ={'+data+'}');
                   }
               });
           });
       })(jQuery);
   </script>

   <div class="recebe_resultado">

   </div>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.