Jump to content

SELECT php


diokhan
 Share

Recommended Posts

boas,

agora a minha duvida é, eu consigo gerar automaticamente varias "input type=text", mas preciso de tambem criar dinamicamente as SELECT BOX, tenho uma funçao feita em pdo que gera a SELECT e preenche as OPTIONS com os dados da tabela. mas nao sei como interligar uma coisa e outra. alguem pode ajudar-me? aqui fica a funçao que tenha feita:

function GetClient()
	{
		$sql = "SELECT ID_CLIENT, NAME_CLIENT FROM client ORDER BY ID_CLIENT ASC";
    		$stmt = $this->dbh->prepare($sql);
    		$stmt->execute();
	    
    		$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
    		$clients = array();
    		foreach( $res as $client )
	    {
	        $clients[$client['ID_PROJECT']] = $client['NAME_PROJECT'];
	    }
	    return $clients;
	    
	   echo '<select name="IdClient" size="50">';
		foreach($clients as $row)
		{
			echo '<option value="'.$row['ID_CLIENT'].'"';
			echo '>'.$row['NAME_CLIENT'].'</option>';
	   	}
		echo '</select>';	
	}

desculpa a pergunta, mas é possivel fazer uma query dentro do javascript?

APARTE: Usa o Geshi, torna o post mais legível. 🙂

...Join the dark side...and get a free cookie...

Link to comment
Share on other sites

desculpa a pergunta, mas é possivel fazer uma query dentro do javascript?

Não, só com PHP. Podes usar AJAX pelo meio para não teres de recarregar a página.

Quanto à tua outra dúvida, não percebi o que queres. Queres, ao carregar a página, através de PHP, criares inputs dinamicamente?

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Link to comment
Share on other sites

pelo que eu percebi o que o meu chefe disse, preciso criar uma pagina onde ao criar um novo projecto tenha 2 botoes, o SAVE PROJECT e o NEW TASK. ao clicar no save project grava a informaçao que aparece e vai po index, se clicar no new task, o projecto e gravado mas aparece outro menu para introduzir outra tarefa, basicamente, no inicio temos um form do projecto e um form de tarefa, ao clicar no new task os dados que estava na form da task desaparecem e dao lugar a outra tarefa, mas os dados que esta na form do projecto mantenhem-se e ja estao gravados na base de dados, porque sao tabelas diferentes, tanto a dos projectos como as das tarefas. espero ter-me feito perceber. aquilo é por dias, hoje querem assim amanha ja querem tudo diferente, ja nem eu percebo bem

...Join the dark side...and get a free cookie...

Link to comment
Share on other sites

quanto a isso o meu chefe nao me disse nada. sou livre de fazer o que quiser desde que o resultado final seja o que ele quer, ele nao se importa como faço desde que funcione. eu inda nao pensei muito bem no assunto, porque ele disse-me isto faltava 5min para sair por isso nao pensei nisso, mas agora a noite vou tirar um tempo para pensar um pouco tambem 🙂

...Join the dark side...and get a free cookie...

Link to comment
Share on other sites

Sempre que ele clica no botão New Task, ele deve submeter o formulário para uma página PHP que trata os dados. Neste caso insere os dados da tarefa que lá estão, suponho que seja isso que queiras, e depois redirecciona para outra página que mostre de novo o formulário, pronto para uma nova tarefa.

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Link to comment
Share on other sites

exatamente..ao inicio tenho como inserir um novo projecto e uma nova tarefa, depois de clicar no save task ele guarda na base de dados a informaçao que la tinha e volta a dar-me o formulario da nova tarefa para inserir mais uma tarefa. ate que o utilizador insira as tarefas necessarias, que podem ser uma duas ou mais. mas isso como vai usar smp a mesma pagina e sempre a mesma query para guardar nao ha crise.

...Join the dark side...and get a free cookie...

Link to comment
Share on other sites

eu pensei numa soluçao,

<?php 
if(isset($_POST["saveproject"]))
{
	header('Location: new/insertProject.php');
}
if(isset($_POST["addtask"]))
{
	header('Location: new/insertProject2.php');
}
?>
<form name=project action='#' method=POST>
...
<input type='submit' src='images/user.png' alt='New Project' name='saveproject' border='0' id='Submit_btn' value='Save Project'>
    <input type='submit' src='images/user.png' alt='Add Task' name='addtask' border='0' id='Submit_btn' value='Add Task'>

ja funciona melhor, mas nao esta a passar as variaveis para o outro lado  ?

...Join the dark side...and get a free cookie...

Link to comment
Share on other sites

Boas....

Na realidade isso vai envolver javascript...

<form name="project" id="frmProject" action="" method="POST">
<!-- AQUI TENS OS OUTROS CAMPOS TODOS -->
<input type='button' onclick="this.form.action = 'new/insertProject.php'; this.form.submit();" src='images/user.png' alt='New Project' name='saveproject' border='0' id='Submit_btn' value='Save Project' />
<input type='button' onclick="this.form.action = 'new/insertProject2.php'; this.form.submit();" src='images/user.png' alt='Add Task' name='addtask' border='0' id='Submit_btn' value='Add Task'>

Assim ele passa-te os valores do form 🙂

Link to comment
Share on other sites

boas,

surgiu-me um problema neste sistema. a primeira vez que corre a pagina grava na base de dados tudo muito bem, na segunda vez quando vou inserir outra tarefa referente ao mesmo projecto já nem um botão funciona nem outro. deixo aqui o meu código para caso alguém queira ver para ser mais fácil ajudar-me:

<script language="JavaScript">

if(isset($_POST["saveproject"]))
{
	header('Location: new/insertProject.php');
}
if(isset($_POST["addtask"]))
{
	header('Location: new/insertProject2.php');
}
</script>
<?php 

require_once ('../Project Manager/functions.php');

$projects = new Project;
$projects->GetProjectById($_GET['id']);
$nameproject = $projects->GetNameProject();
$description = $projects->GetDescription();
$idplate = $projects->GetIdPlate();
echo"
	<form name='project' id='frmProject' action='' method='POST'>
		<h4>Project:</h4>
			<div id='maintask' style='border-width:1px; border-style:solid; border-color:grey'>
				Name Project:<span style='padding-left: 10px'><input type='text' name='nameProject' size='100' value='$nameproject' readonly='readonly'></span><br>
			    Description:<span style='padding-left: 24px'><textarea name='description' cols='75' rows='5' value='$description' readonly='readonly'></textarea></span><br>
			    ID Plate:<span style='padding-left: 49px'><input type='text' name='idPlate' size='100' value='$idplate' readonly='readonly'></span><br><br>
    			</div>";

echo"
    	<hr>
    	<h5>Task:</h5>
    		<div id='maintask' style='border-width:1px; border-style:solid; border-color:grey'>
		    	Client Name:<span style='padding-left: 44px'>";

						$clients = $projects->GetClient();
			    		echo'<select name="idClient">';
							foreach($clients as $key=>$value)
							{
								echo '<option value="'.$key.'">'.$value.'</option>';
		   					}		
						echo '</select>';

				echo" </span><br>
		    	Task Name:<span style='padding-left: 50px'><input type='text' name='taskname' size='95'></span><br>
		    	Description:<span style='padding-left: 48px'><textarea name='description2' cols='72' rows='5'></textarea></span><br>
		    	Plate Number:<span style='padding-left: 34px'><input type='text' name='platenumber' size='95'></span><br>
		    	Task Reference:<span style='padding-left: 20px'><input type='text' name='reftask' size='95'></span><br>
    		</div>
    	<hr>
	    <center>
		    <input type='button' onclick='this.form.action='new/insertProject.php'; this.form.submit();' alt='New Project' name='saveproject' id='Submit_btn' value='Save Project' />
			<input type='button' onclick='this.form.action='new/insertProject2.php'; this.form.submit();' alt='Add Task' name='addtask' id='Submit_btn' value='Add Task' />
		</center>
	</form>";
?>

pode parecer meio confuso o código ?

...Join the dark side...and get a free cookie...

Link to comment
Share on other sites

boas, para nao abrir um novo topico pensei que era melhor manter neste.

eu tenho uma SELECT e quero guardar numa variavel a opçao, eu vou colocar aqui o codigo para explicar melhor a ideia:

<SELECT name=lst_client>
        	<option value=NAME_CLIENT>Client Name</option>
        	<option value=ADDRESS>Address</option>
        	<option value=CITY>City</option>
        	<option value=INSTITUTION>Institution</option>
        </SELECT>

e tenho em baixo:

if (isset($_POST['consulta'])) 
        {
        	echo 'Searching for:<strong> '.$consulta. '</strong> in:<strong> '.$lst_client.'</strong>';
        }

mas gostaria que na variavel $lst_client nao fosse o valor da OPTION mas sim o valor que é apresentado na SELECT, o valor que o utilizador ve. Tenho de colocar um name na OPTION? ?

...Join the dark side...and get a free cookie...

Link to comment
Share on other sites

Ora bem, tu é que controlas o que vai em Value certo? Se quiseres, metes o texto da option no value 😄

A não ser que queiras que ambos os valores passem... Aí deves considerar passar o texto da select como hidden, através de javascript:

<input id="opcao_texto" name="opcao_texto" type="hidden" value="" />
<select onchange="document.getElementById('opcao_texto').value = this.options[this.selectedIndex].text;">
(...)
</select>
Link to comment
Share on other sites

por acaso ja percebi o porque da minha pergunta 😄

tipo..o value eu nao posso mudar..porque quando faço a pesquisa uso o VALUE para indicar o campo da tabela onde pesquisar..agora que lembrei disso porque dava-me erros quando mudei os valores

eu deixo aqui a parte do codigo que interessa:

<form method="POST" action="restrito.php?opcao=admin&op=users">
      <fieldset>
        Search:
        <input type="text" id="consulta" name="consulta" maxlength="100" />
         <SELECT name="lst_user">
        	<option value="NAME">Name</option>
        	<option value="USER">Username</option>
        	<option value="EMAIL">E-Mail</option>
       		</SELECT>
		<input type="submit" value="Search" />
		<br><br>';
			if (isset($_POST['consulta'])) 
			{
				echo 'Searching for:<strong> '.$consulta. '</strong> in:<strong> '.$lst_user.'</strong>';
			}
		echo' </fieldset>

....


if (!isset($_POST['consulta'])) {
		$paginacao->sql = "SELECT * FROM user ORDER BY ID_USER ASC";
	}
	else{
		$paginacao->sql = "SELECT * FROM user WHERE ".$_POST['lst_user']."
									LIKE '%".$_POST['consulta']."%' ORDER BY ID_USER ASC";
	}

eu so quero o valor que é apresentado ao utilizador na SELECT para escrever a frase:

if (isset($_POST['consulta'])) 
{
	echo 'Searching for:<strong> '.$consulta. '</strong> in:<strong> '.$lst_user.'</strong>';
}

...Join the dark side...and get a free cookie...

Link to comment
Share on other sites

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
 Share

×
×
  • 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.