-
Total de itens
1327 -
Registro em
-
Última visita
-
Dias vencidos
15
Tudo que Omar~ postou
-
Me parece que não adianta nada agora tentar corrigir a codificação de caracteres, pois o problema ocorreu quando os dados foram registrados. Vale ressaltar também que a codificação da aplicação também deve ser definida na mesma codificação usada pelo charset. Detalhes como a própria criação da tabela também vão ter grande relevância, exemplo: CREATE TABLE `exemplo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `texto` varchar(100) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; De qualquer forma um simples solução para codificação de caracteres é nunca usar acentuação e sim entidades das mesmas, exemplo: $salvar = htmlentities('João é um menino'); /* No banco de dados fica salvo assim: - João é um menino Mas sempre que for exibido no html não importa qual a codificação será: - João é um menino */ Se fosse meu caso e não ´pudesse reiniciar o banco de dados estaria a criar um mapa de caracteres desses que estão "diferentes". Criaria um programa - que automaticamente faria a leitura > converteria os estranhos para seu estado real > faria a atualização dos registros usando a função htmlentities. Lógico que alteraria a aplicação para que quando algum registro seja inserido ou alterado passe pela função htmlentities. Então nunca mais teria problemas relacionados ao charset seja lá qual for a codificação usada.
- 6 respostas
-
- acentuação
- acentuação mysql
- (e mais 2 )
-
<!-- Como errar ao escrever HTML ^.^ --> <input id="valorItemExtra" /> <input id="valorItemExtra" /> <input id="#valorItemExtra" /> <input id="#valorItemExtra" /> O atributo ID é único, somente um elemento pode possuir o mesma propriedade. Imagine 1/2/3 ou mais pessoas com o mesmo número de RG ou CPF quem sabe até o mesmo número de telefone, que confusão não seria, no mínimo dizer que isso nunca daria certo. Da mesmo jeito o atributo "ID" deve ser usado, de qualquer forma tanto o javascript quanto o próprio html ou o browser desconsidera isso apenas usando o ultimo ID pois ele sobrescreve os demais porque como dito só pode existir um apenas com a mesma identificação. Resposta para o problema. Remova o erro de usar mais de um ID igual. Busque pelos elementos de input Adicione um ouvinte que detecta quando algum input é alterado. Faça o calculo dentro de um loop pelos elementos quando marcados incrementa o valor.
-
Pode está usando essa classe que escrevi para usar junto o PHPMailer: Crie um arquivo que irá guardar os dados necessários para conexão SMTP <?php defined('SITE_NAME') || define('SITE_NAME', 'fulano'); // Nome que será usado para informar quem está enviando defined('MAIL_TYPE') || define('MAIL_TYPE', 'tls'); // Tipo de criptografia usada defined('MAIL_HOST') || define('MAIL_HOST', 'aaa.bbb.com'); // Servidor de envio defined('MAIL_PORT') || define('MAIL_PORT', 300); // Porta de acesso ao servidor defined('MAIL_USER') || define('MAIL_USER', 'fulano@fulano.com'); // E-mail que vai enviar defined('MAIL_PASS') || define('MAIL_PASS', 'senha_do_fulano'); // senha do e-mail que vai enviar Para enviar: <?php $mail = new Mailer(); $mail->setMail( 'recebe@recebe.com', // e-mail de quem vai receber 'Título do envio', 'caminho para o arquivo.html', [ 'AAAA' => 'Alguma coisa', 'BBBB' => 'Pode-se adicionar quantos índices quiser', ] ); Para o caminho para o arquivo.html você cria um arquivo html, nele você pode definir o layout como quiser como se fosse uma página web mesmo sempre usando o atributo style para tal. Nesse arquivo html você pode está incluindo os parâmetros que criou no array quando definiu os dados de envio exemplo: <p style="color:red">{AAAA}</p> <!-- AAAA será o texto de acordo com o mencionado antes: "Alguma coisa" --> Por fim você manda enviar $mail->send();
-
Eu acho que não dar para fazer, mas posso está enganado. Se fosse para tentar fazer, eu partiria de usar as seguintes aplicações aos quais me vem a cabeça que poderiam ser usadas: https://developer.mozilla.org/pt-BR/docs/Web/API/Window/scroll https://developer.mozilla.org/pt-BR/docs/Web/API/XMLHTTPRequest https://developer.mozilla.org/en-US/docs/Web/API/History/pushState https://developer.mozilla.org/pt-BR/docs/Web/API/Document/createElement https://developer.mozilla.org/pt-BR/docs/Web/API/Node/appendChild https://developer.mozilla.org/pt-BR/docs/Web/API/Node/removeChild Porém não sei se daria certo, pelo fato que não dar para prever quando a pessoa vai clicar em voltar na aba do navegador, porque isso não dar para capturar exceto se criar uma extensão própria para o navegador que comunicaria ao javascript que a ação foi realizada. Ou talvez tenha algum truque para detectar essa ação que nunca ouvir falar. Em uma "gambiarra" eu usaria um setinterval para está constantemente consultado a barra de navegação assim saber quantas páginas devem existir de acordo com a rolagem.
- 1 resposta
-
- html
- javascript
-
(e mais 1 )
Tags:
-
As filtragens que pode aplicar é bem variável, pois depende se vai ou não manter ou permitir determinadas entradas. Digamos que eu não queira uso de um caractere de aspa, então eu não executo o restante do código porque tem uma aspa na informação. Mas se eu quero essa aspa eu posso alterar ela de forma que a mesma não chegue a atrapalhar ou quem sabe até dar algum problema. Ou então não quero essa aspa ao invés parar a execução ou converter, simplesmente removo e meu código pode continuar. Isso também remonta a vários outros caracteres também usados no nosso ou em outros idiomas. O ruim de barrar caracteres atualmente são os conhecidos emoticon comuns em aparelhos móveis. Então bloquear determinados caracteres deve-se assegurar que esses caracteres não vão comprometer a exibição desses emoticon que são compostos caracteres unicode. Vou compor uma situação aqui: <?php class exemplo { private static $string; public static function converter($x) { self::$string = (string) $x; self::codificar(); self::aspas(); return (self::$string); } private static function codificar() { self::$string = mb_convert_encoding(htmlentities(self::$string), 'UTF-8', 'ASCII'); } private static function aspas() { $aspas = ['/\'/', '/"/', '/`/']; $entidades = [''', '"', '`']; self::$string = preg_replace($aspas, $entidades, self::$string); } } // É um texto com "aspas" > e com a mesma 'simples' e invertida `também` $strA = "It'is a text with \"quotes\" > and with the same 'simple' and inverted `also`"; $strB = exemplo::converter($strA); echo ($strB . "<br />"); echo ("<pre>"); var_dump($strB); echo ("</pre>"); Se executar o código $strB mesmo sendo o valor aplicado pela classe é mostrado como o texto original não aparenta que nada foi modificado, até mesmo a função var_dump não monstra nada diferente. Até mesmo se inspecionar o texto pelo navegador não se ver diferença. Isso porque quaisquer caracteres especiais que venha a conter foram substituídos por entidades html então o navegador sempre irá mostrar ele como ele deveria ser exemplo: Mostra " mas na verdade é " Mostra > mas na verdade é > A única forma que existe para que se consiga ver como realmente é o texto é executando ele com algo que não é um interpretador html, PHP é um interpretador html. Podemos usar o javascript: echo ("<script>console.log(\"{$strB}\")</script>"); Então no console do navegador verei como o texto é antes de ser interpretado. Digamos que salvo algum texto no banco de dados, quaisquer eventuais códigos serão salvos no banco sim, mas não como códigos funcionais apenas como uma simples string que nunca será interpretada como função, ou seja nunca sendo executada. Mesmo repassando a mesma eu várias ocasiões. A não ser que eu transforme novamente o texto de entidades a caracteres: echo html_entity_decode(utf8_decode($strB)); // Retorna o código ao estado original Você pode aplicar muito mais conversões usando entidades der uma olhada nisso que achei https://oinam.github.io/entities/ Mas deixo claro que só a função htmlentities já faz um bom trabalho. O ponto forte de se usar entidades é que nunca irá precisar se preocupar com erros de acentuação por causa de codificação da aplicação pois não importa o idioma se é árabe, chinês, inglês ou português, se é utf-8, ANSI ou sei lá, quaisquer problemas relacionados a isso estarão solucionados. João é amigo de maria João é amigo de maria PDO e áspas.... PDO já salva aspas escapadas para evitar justamente a quebra da coluna no banco de dados.
-
Simples dados 1 é substituído por dados 2/ e 3 substitui 2/ 4 substitui 3 etc... etc... etc... Exemplo: $variavel = 'AAA'; $variavel = 'BBB'; $variavel = 'CCC'; var_dump($variavel); // Resultado é (string) CCC pois é a ultima informação igual definida. $variavel = [ 'AAA', 'BBB', 'CCC' ]; var_dump($variavel); // Resultado é (array) AAA,BBB,CCC. Na verdade a substituição já acontece quando o navegador vai enviar as informação, somente enviando a última que substitui todas anteriores. Você pode definir os inputs como um array assim quando chegar ao lado do servidor terá vários dados dentro de uma array na super-global post Exemplo: <input type="text" name="como_array[]" value="A" /> <input type="text" name="como_array[]" value="B" /> <input type="text" name="como_array[]" value="C" /> Então a cada índice você faz o update. Eu não mecho com mysqli, então apenas vou dizer para dar uma lida nisso talvez possa ser útil: https://www.php.net/manual/pt_BR/mysqli.multi-query.php Outra forma é criar cada input individual de acordo com a chave do array de retorno na query Exemplo: $sqlSelect = mysqli_fetch_assoc($result); foreach ($sqlSelect as $chave => $valor) { ?> <input type="text" value="<?= $valor['trackNumero'] ?>" name="trackNumero-<?= $chave ?>"> <?php } Então no lado do servidor os valores serão separados (https://www.php.net/manual/pt_BR/function.substr.php) e indexados em um array. Então percorrer esse array criado e a cada chave idêntica no mesmo índice realizar o update. Ponderações: Filtre melhor os dados que serão processados no servidor, imagine alguém quebrar a sintaxe do php para expor o código fonte que está sendo processado pelo servidor. mysqli_real_escape_string é muito fácil burlar se é que isso funciona mesmo. Nunca passe uma informação vinda do usuário direto dentro de uma query, nunca se sabe o que está sendo executado, injeções de código vem de todo lugar e você não vai querer alguma detonando todo seu baco de dados ou vai? Use query pré preparadas https://www.php.net/manual/pt_BR/mysqli.quickstart.prepared-statements.php Dica pessoal minha: PDO é uma boa (não a melhor) alternativa pois já possui uma pequena proteção em seu mais simples uso. Não é bicho de sete cabeça e mais fácil e seguro de usar que mysqli.
-
Para fins de estudo de caso outros cheguem até aqui. O site sem si fornecido pelo autor do tópico usa como referencia elemento de autua e largura totais, a a propriedade fixed sobre esses elementos para cobrir. Quando uma página é trocada ela não é trocada... Vou explicar apesar de ser um link da tag <a> exite um evento a espera desse click. No momento do click a função responsável troca o conteúdo da tag que irá cobrir ao mesmo tempo que a mostra pois ela está oculta. Os efeitos nada mais é que css de margin, opacity etc... Voltando ao caso do click a função executa Asynchronous JavaScript And XML a um arquivo que irá devolver a resposta como texto html. Durante o processo de comunicação do AJAX, o histórico da url é manipulado. Fazendo pensar que na verdade clicasse em algum link. Quando a resposta está pronta a mesma função altera o html da página com o html da resposta e oculta o elemento que cobre a tela. Etapas: 1 - Obter todos links 2 - Remover comportamento padrão dos links. 3 - Acionar uma requisição ajax quando o link é ativado. 4 - Enviar pedido ao servidor para que forneça o arquivo referente ao link ativado. 5 - Obter solicitar a resposta como text/html. (Etapa 7 inicia aqui.) 6 - Alterar HTML do elemento de animação. 7 - Alterar o histórico da url. 8 - Alterar o HTML do elemento que irá carregar a página. 9 - Alterar o HTML do elemento de animação. O resto é só css simples e básico position/opacity/margin/translate.
-
@Biel. Vá até o diretório de instalação do phpmyadmin vasculhe os arquivos até encontrar aquele que faz esse gerenciamento, então é só editar ele conforme achar que pode fazer melhor. No entanto isso não passa de uma bobagem desnecessária. Não dou detalhes sobre qual arquivo porque não uso o phpmyadmin para gerenciar banco de dados e tabelas. Já trabalhei com redes logísticas e de varejo que possuíam quase 100 ou mais tabelas em um só banco de dados. Esse site mesmo aqui que é o sistema invision power board deve ter umas 80 tabelas por aí. Ter várias tabelas ou não depende da organização de um volume gigantesco de dados.
-
Problema ao gerar array bidimensional dinamicamente.
Omar~ respondeu ao tópico de Rengavitp em Javascript
O ideal é que você faça isso e nos poste o resultado no console: console.log(response) Pois é com essa informação que podemos analisar como a coisa deve ser gerada. Aparentemente a resposta é algum objeto, mas teria que vê-lo para responder corretamente. -
Blz...? Vejamos essa query: SELECT postagem.id, postagem.link, postagem.autor, postagem.editor, usuario.id, usuario.nome FROM postagem INNER JOIN usuario ON postagem.autor = usuario.id Então estou buscando pelos dados da postagem e o autor da mesma. A questão é: Tenho uma tabela "postagem" que guarda informação do "autor" da postagem e quem a editou "editor" Com essa query consigo trazer o resultado da tabela usuario dano a referencia do autor. Mas como eu faria para ter os dados do "autor" e do "editor" na tabela "usuario"? Preciso obter os nomes de quem criou e quem editou.
-
Dar se não for um ambiente web. Exemplo uma página de servidor não pode acessar o conteúdo de um sistema operacional do usuário, graças a deus! Isso é questão de segurança além do mais impede que desinformados fiquem inventando moda com coisas que não tem nada haver. Se é um documento html por exemplo que é executado pelo próprio sistema operacional ao invés de um software como o navegador web pode-se abrir um diretório sim. Somente se for windows, outros sistemas operacionais que são seguros como o linux impedem esse tipo de ação "por segurança", no entanto o acesso pode ser concedido pelo terminal. <a href="file:///C:/">Abrir</a> Outro caso, se você adulterar o navegador ou criar um com essa finalidade pode sim. Pois abrir conteúdo qualquer browser vai impedir quando o link vier de algum ambiente web. Não vou dar mais detalhes pois estamos entrando numa área sombria que viola a segurança na web.
-
Para começar jogue fora essa coisa aí que chama de script que insiste em usar. Então tá, mesmo a lógica não tendo nada haver, e o objetivo disso ser controverso.... Digitei no primeiro input, o que eu digitar substitui o valor no segundo input, mas o segundo input só pode ter no máximo 20 caracteres (está aqui a falta de lógica). <input name="exemplo[]" /> <!-- input[0] --> <input name="exemplo[]" data-recebe="" /> <!-- input[1] --> <script> var input = document.getElementsByName('exemplo[]'), inputAlvo = {}; input[0].addEventListener('keyup', digitar, false); input[1].addEventListener('keyup', digitar, false); function digitar(evento) { inputAlvo = evento.target; if (inputAlvo.dataset.recebe === '') { input[1].value = input[(input[0].value.length >= 1 ? 0 : 1)].value.substring(0, 20); } else { input[1].dispatchEvent(new Event('keyup')); } } </script>
-
Tente algo como isso.... <p>De qualquer forma os input só vão aceitar 20 caracters</p> <input maxlength="20" type="text" class="basic-usage" name="input-a" /> <input maxlength="20" type="text" class="basic-usage" name="input-b" /> <script> // Armazenamos todos elementos, teremos que pecorrer eles 2 vezes var input = document.querySelectorAll('input'); // Quantidade de caracteres atuais var total_de_caracteres = 0; // Total de caracteres que podem co-existir var caracteres_permitidos = 10; // De acordo com seu tópico aqui seria 20, deixamos em 10 para exemplo // Percorremos os elementos para adicionar o evento neles for (var i = 0; i < input.length; i++) { input[i].addEventListener('keyup', digitar, false); } // Função que é executada através do ouvinte de eventos keyup function digitar(e) { // Começamos definindo que o total de caracteres é do input alvo total_de_caracteres = this.value.length; // Percorrendo os elementos novamente então for (var j = 0; j < input.length; j++) { // Se a volta atual do loop não for o input alvo aumentamos // o total de caracteres inseridos com o valor dos demais // inputs que existirem if (input[j] !== this) { total_de_caracteres += input[j].value.length; } } // Então se o total for maior que o permitido // Redefinimos o valor do input alvo if (total_de_caracteres > caracteres_permitidos) { // Substituir tudo que é depois da quantidade permitida this.value = this.value.substring(0, caracteres_permitidos); } } </script>
-
Na verdade você está consumindo mais por eliminar. Não diria na seguinte situação dentre outras no contexto similar: Tenho um array onde executo loop nele para redenir valores. Só que novamente tenho que percorrer esse array em alguma parte futura do código e muitos dos índices não serão usados mais. Nesse caso eliminar os índices já no primeiro laço de repetição posso chegar a ganhar em desempenho ou não, dependendo do que vai ser eliminado. unset seria mais indicado se de acordo com o programa uma coisa não possa ser o esperado, podemos eliminar, e se mais tarde não existir, retornar a situação de erro de forma controlada. Para completar isso (não que seja algo errado): Não reutilize, a menos que seja realmente necessário. Isso pode chegar a dar dor de cabeça em manutenções futuras e ter que ficar relendo várias vezes o código para saber o que realmente $callback está armazenando. Uma situação onde a gama de dados são registros que podem ultrapassar de 1000 e o loop deve ser excetuado duas vezes no segundo querys são lançadas. Eliminar os índices no primeiro loop poupa recursos que seriam usados novamente:
-
<a href="#">Vai para o topo</a> <a>Não vai para o topo</a> <button>Não vai para o topo</button> O caractere # é um bookmak, como ele não específica um elemento id seu endereço é o início da tag body <a href="#exemplo">Vai para exemplo</a> <a href="#">Vai para topo</a> <div id="exemplo"></div>
-
$array = [ 0 => ['id' => 1, 'nome' => 'Texto: a'], 1 => ['id' => 2, 'nome' => 'Texto: b'], 2 => ['id' => 3, 'nome' => 'Texto: c'], 3 => ['id' => 4, 'nome' => 'Texto: d'], 4 => ['id' => 5, 'nome' => 'Texto: e'] ]; if ($array[2]['nome'] === 'Texto: c') { echo("O \"Texto: c\" está na chave 2"); }
-
A questão mais é: Saber programar a aplicação e as querys em geral para o menor consumo da máquina é o que se deve se preocupar e não com o tamanho do banco de dados. Se não tem uma vasta capacidade de escrever código não importa qual tipo de banco de dados e seu tamanho a coisa sempre vai ter um retorno ruim. Faço também minhas essas palavras:
-
https://www.php.net/manual/pt_BR/function.imagewebp.php
-
Tem jeito melhor e mais eficaz de fazer isso acontecer, mas dessa forma fica mais simples de se entender. <style> * {margin: 0; padding: 0} #azul { max-width: 31.25rem; margin: auto; height: 6.25rem; background-color: blue } #azul.acao {visibility: hidden} #verde { max-width: 31.25rem; margin: auto; background-color:green; top: 0; position: sticky; visibility: hidden } #verde.acao {visibility: visible} .espaco {height: 312.5rem} </style> <div id="azul"> Azul </div> <div id="verde"> verde </div> <p id="p2">teste</p> <div class="espaco"></div> <script> var azul = document.getElementById('azul'), verde = document.getElementById('verde'); document.addEventListener('scroll', function (evento) { if (window.scrollY >= azul.offsetHeight) { // Quando a rolagem for maior ou igual a altura do azul azul.classList.add('acao'); verde.classList.add('acao'); } else { azul.classList.remove('acao'); verde.classList.remove('acao'); } }, false); </script>
-
Se são os arquivos estão diretamente no mesmo diretório do website e não possui restrição de acesso a eles deveria está tudo bem. Isso geralmente acontece quando se requisita arquivos de outra url o que pode acontecer de algum tipo de restrição. Bem, o que posso lhe dar alguma coisa a se observar. Verifique o cache, acesse o inspetor do navegador e veja se o arquivo css da fonte é mesmo como deveria ser e os arquivos .ttf etc estão mesmo como deveria ser. Verifique o case-sentitive letras minúsculas e maiúsculas. Porque 404 é erro de não encontrado
-
Mas a requisição dos arquivos de fonte estão no diretório do website ou são puxados de outro lugar?
-
como pegar conteudo de uma variavel javascript e passar pra uma variavel php
Omar~ respondeu ao tópico de joao b silva em Javascript
Além do ajax que é o mais comum de uso existe outra possibilidade. Carregar os dados que deseja no carregamento do documento. Dessa forma não se precisa enviar nova requisição toda vez que algum produto é selecionado. Qual melhor alternativa? R: Ambas, pois depende do resultado a obter e da proposta da função. Veja nesse exemplo onde simulo um resultado da query quando se acessa a página, assim uso esse resultado para criar um json com todos registros. Com o json uso ele para criar um seletor de produtos, que ao ser alterado busco novamente no json os dados e informo mais conteúdos. <?php // SELECT produto_id, produto_nome, produto_preco FROM tabela_produtos $exemplo_do_resultado = [ // 'id' => produto_id, 'nome' => produto_nome, 'preco' => produto_preco ['id' => 0, 'nome' => 'Maçã', 'preco' => '11'], ['id' => 1, 'nome' => 'Banana', 'preco' => '22'], ['id' => 2, 'nome' => 'Laranja', 'preco' => '33'], ['id' => 3, 'nome' => 'Melancia', 'preco' => '44'], ['id' => 4, 'nome' => 'Melão', 'preco' => '55'] ]; ?> <div id="local_do_seletor"></div> <div id="local_para_mostrar"> <p>Selecione um produto</p> </div> <script> var selecionar = document.getElementById('local_do_seletor'); var mostrar = document.getElementById('local_para_mostrar'); var produtos = JSON.parse('<?= json_encode($exemplo_do_resultado) ?>'); // ou dependendo de como está trazendo o array do banco de dados // var produtos = '<?= json_encode($exemplo_do_resultado) ?>'; function carregarLista() { var seletor = document.createElement('select'), opcao = {}; window.produtos.forEach(function (coluna, indice) { opcao = document.createElement('option'); opcao.value = coluna.id; opcao.innerText = coluna.nome; seletor.appendChild(opcao); }); selecionar.addEventListener('change', verProduto, false); selecionar.appendChild(seletor); } function verProduto(evento) { var idAlvo = parseInt(evento.target.value), texto = ''; window.produtos.forEach(function (coluna, indice) { if (coluna.id === idAlvo) { texto = 'Você selecionou o produto ID (' + coluna.id + ') '; texto += 'de nome (' + coluna.nome + ') '; texto += 'e seu valor é (' + coluna.preco + ') '; } }); if (texto.length > 1) { mostrar.children[0].innerText = texto; } } carregarLista(); // Cria o seletor com as opções </script> Prós: Não é necessária uma nova requisição sempre que selecionar algum produto. Contras: Quanto mais registros existirem mais lento a página é carregada. (Depende mais do hardware do usuário e sua conexão) -
como pegar conteudo de uma variavel javascript e passar pra uma variavel php
Omar~ respondeu ao tópico de joao b silva em Javascript
Dessa forma não é possível. Veja o javascript é executado do lado do usuário ou seja na máquina dele. Enquanto que o php é executado no lado do servidor, ou seja se o usuário já interage ou acessa o conteúdo o php já foi executado e não tem seus dados alterados mais. Em resumo digamos isso: <?php $exemplo = 'console.log(`Olá mundo`)'; ?> <script> function exemplo() { console.log('Dizer:'); <?php echo $exemplo ?> } </script> Na verdade o que é: <script> function exemplo() { console.log('Dizer:'); console.log(`Olá mundo`); } </script> Então não é o php que é executado dentro do script, o script já está pronto e foi escrito pelo php antes do hardware do usuário terminar o download do mesmo. A coisa que se pode fazer é se você quer alguma informação do usuário obrigatoriamente essa informação deve ser enviada para o servidor. Uma vez a informação lá você renderiza novo conteúdo html para o usuário. Ainda em sua lógica.... Escrever PHP dentro de tag's javascript de forma que seu conteúdo seja alterado conforme o php modificar é meter os pés pelas mão mesmo que em muitos casos isso possa até funcionar você está criando uma carga de armazenamento demais para os usuários. Fora a questão da manutenção que vai virar o verdadeiro inferno. Não se deve alterar funções javascript com escrita do php. O cache é uma coisa que se deve pensar, se escreve todo ou alguma parte de um escopo de função do javascript no php ao solicitar a mesma função novamente o cache ainda está ativo e caso a função agora seja diferente a uma infinidade de erros que podem ocorrer. No caso crie a função a mesma só irá trabalhar com dados vindo de parâmetros, então se desejar re-executar a função basta então apenas charmar-la novamente enviando outra informação como parâmetro. // JavaScript function exemplo(parametro) { console.log('Função executada com a informação:\n' + parametro); } <?php $a = "João e Maria foram a padaria"; $b = "E joão queria comprar bolachas"; $c = "Mas Maria só queria pão"; $d = "E ambos só tinham dinheiro para uma coisa"; ?> <script> exemplo(`<?= $a ?>`); exemplo(`<?= $b ?>`); exemplo(`<?= $c ?>`); exemplo(`<?= $d ?>`); </script> -
[Resolvido] quebra de linha do php para o javascript
Omar~ respondeu ao tópico de joao b silva em PHP
@joao b silva Se você posta algo abstrato as pessoas tem que adivinhar o que você está tentando fazer, daí sai respostas incoerentes como a pergunta. Seja objetivo e claro para que a pessoa possa ter certeza do seu problema. php não insere javascript, php é o texto que o servidor interpreta, o usuário final só recebe aquilo que o php já renderizou, no caso sempre será uma marcação html. Explique como a string que corresponde do suposto javascript é criado e como será usado, que do contrário é usar uma quebra de linha "pressionando ENTER" ou um codec que representa uma quebra de linha no caso um contra-barra + N $texto = "var primeiraLinha = 'olá', \n segundaLina = 'mundo';"; No mais um colega aqui bem disse, ficar fazendo rodeios para coisa inútil é coisa inútil. Deixe de preferência o php fazer o trabalho de php e html fazer trabalho de html. É só escapar as aspas echo "<input type=\"{$type}\" />"; -
Crie as opções em um array no php. Dentro da tag <select> 1 e 2 faça um loop percorrendo o array usando o comando echo para compor cada tag <option> em ambos seletores.