fddsantos Posted July 31, 2012 at 12:02 PM Report Share #471083 Posted July 31, 2012 at 12:02 PM Boa tarde, Eu quero realizar uma filtragem a uma tabela apartir de uma combobox em php, já estou a conseguir recolher bem o value da combobox agora só precisava que conseguir filtrar esse valor através de código php/sql. A questão é que não escontro maneira de o php receber esse valor, porque eu não queria usar o post por ser preciso fazer "submit". A questão é, como consigo enviar dados para uma instrução sql/php sem ter que carregar no botão submit ? Agradeço a Atenção, Fábio Santos Lei de Lavoisier aplicada à Informática:Na Informática nada se compra, nada se cria! Tudo se copia! Link to comment Share on other sites More sharing options...
pmg Posted July 31, 2012 at 12:21 PM Report Share #471085 Posted July 31, 2012 at 12:21 PM Só com PHP é impossível. Tens que arranjar ajuda de Javascript. Com a ajuda de Javascript tens duas maneiras: 1) mandas o valor para o servidor, que retorna os dados filtrados, e depois apresentas os dados 2) no primeiro acesso ao servidor este manda os dados TODOS numa variavel Javascript; ao seleccionares um valor o Javascript filtra e actualiza a página PS. em teoria sei fazer, na prática não tenho nenhum exemplo pronto para colar aqui 🙂 What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
MoshMage Posted July 31, 2012 at 12:42 PM Report Share #471089 Posted July 31, 2012 at 12:42 PM (edited) O que tu queres chama-se Ajax - o primeiro link desta pesquisa aqui no google explica-te como usar. Edited July 31, 2012 at 12:42 PM by MoshMage If all Else fails, use Else If; Link to comment Share on other sites More sharing options...
fddsantos Posted July 31, 2012 at 01:09 PM Author Report Share #471093 Posted July 31, 2012 at 01:09 PM sim estou a usar javascript também, eu apresento o que já tenho, ou o que pretendo mais ou menos fazer. combobox: <select name="cbTipo" onchange="FillTextBox(this.value)"> <?php $cbox = mysql_query("SELECT * FROM tipo_produto ORDER BY ID") or die(mysql_error()); while($reg = mysql_fetch_array($cbox)) { ?> <option value="<?php echo $reg['SiglaNomeTipo'];?>"><?php echo $reg['NomeTipo'];?></option> <?php } ?> </select> Javascript: <script type="text/javascript" language="javascript"> function FillTextBox(obj) { <?php //$obj = obj $idSigla = mysql_query("SELECT MAX( ID_IDTipoProduto) FROM catalogo WHERE Sigla_TipoProduto LIKE '$_POST[obj]' ") or die(mysql_error()); while($reg1 = mysql_fetch_array($idSigla)) {?> idSigla = "<?php echo $reg1['MAX( ID_IDTipoProduto)'];?>"; <?php } ?> document.getElementById("refIDTipo").value = idSigla; document.getElementById("refTipo").value = obj; } </script> Lei de Lavoisier aplicada à Informática:Na Informática nada se compra, nada se cria! Tudo se copia! Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 31, 2012 at 01:19 PM Report Share #471096 Posted July 31, 2012 at 01:19 PM https://www.portugal-a-programar.pt/topic/53102-variavel-de-js-para-php/page__hl__+client-side%20+server-side?do=findComment?comment=455407 IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
fddsantos Posted July 31, 2012 at 03:01 PM Author Report Share #471108 Posted July 31, 2012 at 03:01 PM Eu estou a experimentar o que o MoshMage disse, usar ajax... O exemplo neste site: http://www.w3schools.com/php/php_ajax_database.asp Mas não estou é a conseguir receber e meter no value da textbox, para receber estou a usar assim: document.getElementById("refIDTipo").value = xmlhttp.responseText; Lei de Lavoisier aplicada à Informática:Na Informática nada se compra, nada se cria! Tudo se copia! Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 31, 2012 at 03:53 PM Report Share #471116 Posted July 31, 2012 at 03:53 PM (edited) em que parte do site estás a ver a atribuição : .value = Edited July 31, 2012 at 03:54 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
fddsantos Posted July 31, 2012 at 04:01 PM Author Report Share #471117 Posted July 31, 2012 at 04:01 PM (edited) Já percebi que talvez o problema não seja a receber no script mas sim no ficheiro php, onde pode haver problema aqui? <?php $idPro=$_GET["id"]; $con = mysql_connect("localhost","xxx","xxx"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("bd", $con); $idSigla = mysql_query("SELECT MAX( ID_IDTipoProduto) FROM catalogo WHERE Sigla_TipoProduto = '".$idPro."' ") or die(mysql_error()); while($reg1 = mysql_fetch_array($idSigla)) { echo $reg1['MAX( ID_IDTipoProduto)']; } mysql_close($con); ?> a parte do value é para uma textbox Edited July 31, 2012 at 04:06 PM by fddsantos Lei de Lavoisier aplicada à Informática:Na Informática nada se compra, nada se cria! Tudo se copia! Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 31, 2012 at 04:14 PM Report Share #471118 Posted July 31, 2012 at 04:14 PM uma está uma imagem do facepalm quando preciso de uma !!!!! olha para o exemplo da w3schools, olha para o código que tens e diz : Onde está a atribuição .value = no código da w3scools !!!!!! o que queres fazer eu sei bem, eu estou a iluminar o teu problema !!! (espero ter sido mais moderado que das vezes anteriores ...) 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
fddsantos Posted July 31, 2012 at 04:19 PM Author Report Share #471120 Posted July 31, 2012 at 04:19 PM eles estão a usar .innerHTML = então como atribuo valor depois ao "value" da textbox? Lei de Lavoisier aplicada à Informática:Na Informática nada se compra, nada se cria! Tudo se copia! Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 31, 2012 at 04:24 PM Report Share #471121 Posted July 31, 2012 at 04:24 PM se eles estão a retornar HTML é obvio que tens de usar .innerHTML = olha bem para o que o script deles está a retornar: ... echo "<table border='1'> <tr> <th>Firstname</th> <th>Lastname</th> <th>Age</th> <th>Hometown</th> <th>Job</th> </tr>"; while($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['FirstName'] . "</td>"; echo "<td>" . $row['LastName'] . "</td>"; echo "<td>" . $row['Age'] . "</td>"; echo "<td>" . $row['Hometown'] . "</td>"; echo "<td>" . $row['Job'] . "</td>"; echo "</tr>"; } echo "</table>"; ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
fddsantos Posted July 31, 2012 at 05:06 PM Author Report Share #471125 Posted July 31, 2012 at 05:06 PM já consegui, e não precisei fazer nada do que disses-te agora exatamente assim: document.getElementById("refIDTipo").value = xmlhttp.responseText; Lei de Lavoisier aplicada à Informática:Na Informática nada se compra, nada se cria! Tudo se copia! Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 31, 2012 at 05:13 PM Report Share #471127 Posted July 31, 2012 at 05:13 PM ainda bem que conseguiste. mas se conseguiste dessa maneira é por duas razões : - não estás a seguir exatamente o exemplo dado pela w3schools - não deste o teu código para saber o que realmente queres aqui não existem adivinhos, somente pessoas normais que tiram parte do seu tempo para ajudar outros IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
fddsantos Posted July 31, 2012 at 05:22 PM Author Report Share #471128 Posted July 31, 2012 at 05:22 PM Sim estou a seguir mais ou menos o exemplo dado pela w3schools, só alterei aquilo do value. Desde inicio que tenho vindo a dizer o que pretendo, colei aqui a parte php e o script que recebo. Eu estou a experimentar o que o MoshMage disse, usar ajax... O exemplo neste site: http://www.w3schools.com/php/php_ajax_database.asp Mas não estou é a conseguir receber e meter no value da textbox, para receber estou a usar assim: document.getElementById("refIDTipo").value = xmlhttp.responseText; Já percebi que talvez o problema não seja a receber no script mas sim no ficheiro php, onde pode haver problema aqui? <?php $idPro=$_GET["id"]; $con = mysql_connect("localhost","xxx","xxx"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("bd", $con); $idSigla = mysql_query("SELECT MAX( ID_IDTipoProduto) FROM catalogo WHERE Sigla_TipoProduto = '".$idPro."' ") or die(mysql_error()); while($reg1 = mysql_fetch_array($idSigla)) { echo $reg1['MAX( ID_IDTipoProduto)']; } mysql_close($con); ?> a parte do value é para uma textbox e como se pode ver alterei basicamente só aquela linha no script: <script type="text/javascript" language="javascript"> function FillTextBox(obj) { if (obj=="") { document.getElementById("refIDTipo").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("refIDTipo").value = xmlhttp.responseText; } } xmlhttp.open("GET","getIDPro.php?id="+obj,true); xmlhttp.send(); } </script> Lei de Lavoisier aplicada à Informática:Na Informática nada se compra, nada se cria! Tudo se copia! Link to comment Share on other sites More sharing options...
fddsantos Posted July 31, 2012 at 05:33 PM Author Report Share #471130 Posted July 31, 2012 at 05:33 PM e já agora peço desculpa se não fui bem explicito durante o post a explicar o que pretendia. Lei de Lavoisier aplicada à Informática:Na Informática nada se compra, nada se cria! Tudo se copia! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now