Jump to content

Variavel complicada para apanhar :)


Recommended Posts

Posted (edited)

Olá a todos.

Então deparei-me com um problema, o qual é o seguinte...

tenho uma pagina onde tenho uma variavel php para apanhar o id que está na url dessa pagina, e funciona, mas depois vem o problema, dentro dessa pagina onde tenho a variavel que apanha o id da url tenho uma div onde inicialmente nao tem nada la dentro mas se eu carregar num botao dessa pagina irá aparecer outra pagina dentro dessa div, é a lógica basica do ajax, agr o problema é, eu faço load dessa pagina nova dentro da div com o ajax, e preciso do valor da variavel que está a fazer get no id da url e nao consigo telo pois nao passa pelo ajax. vou escrever um simples exemplo para ser mais explicito...

pagina inicial.php


$GetID= $_GET['id'];

<html>
<body>
--Aqui botao para fazer load da pagina na div uma
<div id="uma">

</div>
</body>
</html>

pagina para entrar na div uma

vario codigo e agora preciso de conseguir passar a variavel $GetID para esta pagina, nao posso voltar a fazer a opçao do $_GET e nao consigo passar a variavel, nem por javacript nem com hidden inputs,

se alguem tiver uma soluçao, opiniao etc, e possa ajudar será muito bom, obrigado 🙂

Edited by barezi
Posted

pois se usar jquery com aqela funcao do ajax é simples o meu problema é que eu apenas faço uma coisa com o jquery que é se o botao com o id qualquer coisa tiver click ele faz load de uma pagina na div com o id tal. e assim dessa forma nao dá para passar valores nenhuns, só se eu em vez de ter a pagina que quero fazer load estiver em php com um echo escrevendo em json o código html, assim conseguirei passar os valores pelo ajax e fazer load da pagina com a variavel lá, será uma boa solução?pois a pagina que estou a fazer load nao tem nenhum echo pois estou a fazer load entao está escrita em html, mas posso tb fazer dessa forma que disse, nao me estava a ocorrer mas parece-me uma solução, contudo gostava de saber a opiniao pois nao tenho certezas se será uma opção segura e valida.

Obrigado pela ajuda

Posted (edited)

sim tens razão peço desculpa pelo português mas por vezes estou á pressa e sai tudo um bocado confuso, vou ter mais atenção com isso.

Bom voltando ao problema, tenho um novo script....

config.php


<?php

// Includes
require_once 'classes.php';

// Database Connection
$UserFunctions = new User();
$Con = $UserFunctions->DatabaseConnection();

?>


[/Code]

classes.php

[Code]
public function hello() {

...code

}


[/Code]

Jquery file

[Code=javascript]
$(document).ready(function() {

$("#MyDiv").click(function() {

$.ajax({
async: false,
url: 'file.php',
type: 'POST',
dataType: 'json',
data: {

},

success:function(data) {

$("#someDiv").prepend(data);

}

});
});
});

[/Code]

file.php

[Code]
nesta parte eu estou a tentar chamar a função hello que está no ficheiro classes.php sei que a ligação com o ficheiro está correta mas não é possivel chamar a função possivelmente porque estou a usar o jquery com o ajax para fazer a ligação, falta-me mesmo só esta parte para terminar esta parte de ligações onde estou a ter algumas dificuldades, se alguem conseguir ajudar nesta parte será mesmo importante, Obrigado a todos pela ajuda
[/Code]
Edited by barezi
geshi
Posted (edited)

sim em relação a estar tudo no mesmo diretório e estar tudo a conheçer as ligações entre um e outro ficheiro está tudo bem, nao te preocupes com isso das ligações pois tenho 100% certeza que está tudo bem.

o file.php é esta ultima parte que eu digo php5 loaded by ajax jquery file posso dar-te um exemplo assim desse ficheiro:


echo json_encode (
' algum código html com divs etc e no meio dessa div quero chamar a tal função hello');
[/Code]

[/font][/color][color=#282828][font=helvetica, arial, sans-serif]nao te preocupes com se o ficheiro tem as ligações para conhecer essa parte de chamar a função ou isso, pois sei que está bem as ligações pois se eu fizer o código todo igual mas na parte do jquery em vez de usar a função ajax usar load, ou seja vou fazer load do file.php onde lá dentro eu estou a chamar a função e tudo está a correr bem, o problema é que se eu usar o load nao consigo passar a variavel que preciso para o ficheiro php, e se usar o ajax conseguia passar...[/font][/color]

[font=helvetica, arial, sans-serif][color=#282828]eu não tenho a certeza mas penso que nao seja permitido chamar funções de classes em ficheiros com php5 onde os quais são carregados pelo ajax[/color][/font]

Edited by barezi
Posted (edited)

nem vou comentar sobre as tuas ideias de AJAX ... vou deixar o tempo passar e aprenderes para que no futuro te lembres no que disseste.

agora, se o problema é :

$.ajax({
 async: false,
 url: 'file.php',
 type: 'POST',
 dataType: 'json',
 data: {
   // ups, nao sei por aqui o ID do request !!!
 },
 success:function(data) {
   $("#someDiv").prepend(data);
 }
});

a única coisa que tens de fazer é adicionar um input do tipo hidden na página com um id bem conhecido e com o valor do ID pretendido

exemplo

$_GET['id'] = (int)$_GET['id'];
echo "<input type='hidden' id='requestID' value='{$_GET['id']}' />";

agora, basta simplesmente ler esse input:

$.ajax({
 async: false,
 url: 'file.php',
 type: 'POST',
 dataType: 'json',
 data: {
   id: $('#requestID').val()
 },
 success:function(data) {
   $("#someDiv").prepend(data);
 }
});
Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Posted (edited)

realmente de ajax pouco percebo, mas quando me estou a referir ao ajax é sempre utilizando esta parte com jquery pois é por enquanto o que percebo:

$.ajax({
 async: false,
 url: 'file.php',
 type: 'POST',
 dataType: 'json',
 data: {
id: $('#requestID').val()
 },
 success:function(data) {
$("#someDiv").prepend(data);
 }
});

voltando agr á tua resposta, essa parte de apanhar o valor e passar para o ficheiro file.php sei como funciona, o problema nao é esse o problema é que eu preciso de chamar a função hello dentro do file.php e nao dá

Edited by barezi
Posted

ja consegui resolver tudo, usando esse método nao dava ele nao reconhecia a funçao que eu estava a chamar de uma class externa, tive que usar o load do jquery e dentro do load passar uma variavel para o ficheiro, e pelo load reconhece a função que estou a chamar da class externa.

Obrigado na mesma pelas ajudas

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.