Prosljeđivanje varijable - Bootstrap, Modal, Java, Php

<?php
session_start();
include_once("header.php");

?>
<div style="padding-bottom:100px;"></div><br/>
<?php		
	if (($_SESSION['login'] == TRUE))
	{	
		//pocetak admin
		if (($_SESSION['vrstak'] == '0'))
		{	
			?>
			<center>
			<form action="korisnik.php" method="post" id="msform">
			<input type="text" name="korisnik" value="" placeholder="Unesite korisničko ime, npr. ibasic"/>
			<input type="submit" value="PRETRAGA"/>
			</form>
			</center>
		<?php
			if(isset($_POST['korisnik']))
			{
				$query = $db->prepare("SELECT * FROM korisnik WHERE kime LIKE :kime AND vrstak = :vrsta ORDER BY kime");				
				$query->execute(array(':kime' => $_POST['korisnik'].'%',
									   ':vrsta' => '2'));
				$result = $query->fetchAll();
				?>
				<table class="table table-striped">
				<tr>
				<th><center>Korisničko Ime</center></th>
				<th><center>Ime</center></th>
				<th><center>Prezime</center></th>
				<th><center>E-Mail</center></th>
				<th><center>Kredit</center></th>
				</tr>
				<?php
				foreach ($result as $row) 
				{
				?>
					<tr>
					<td><center><?php print $row['kime']?></center></td>
					<td><center><?php print $row['ime']?></center></td>
					<td><center><?php print $row['prezime']?></center></td>
					<td><center><?php print $row['email']?></center></td>
					<td><center><?php print $row['kredit']?></center></td>
					<td width="80px">
					<center>
					<form style="float: left" action="korisnik.php" method="post">
					<input type="hidden" name="id_user" value="<?php print $row['kime']?>" />
					<button type="submit" name="brisi" class='glyphicon glyphicon-trash'/>
					</form>
					<button href="#myModal1" role="button" data-toggle="modal" data-id="<?php print $row['kime']?>" class="open-myModal1"><span id="sredina_moje" class="glyphicon glyphicon-edit"/></button>
					</center>
					</td>
					</tr>
				<?php
				}
				?>
				</table>
			<?php	
			}
			
			?>
			<div class="modal fade" id="myModal1">
				<div class="modal-dialog">
					<div class="modal-content">
						<div class="modal-header">
							<button class="close" data-dismiss="modal">&times;</button>
							<center><h4 class="modal-title">EDIT KORISNIKA</h4></center>
						</div><!-- end header -->
						<hr/>
						<div class="modal-body">
							<!--<input type="text" name="kime" id="kime" value=""/>-->
							<input type='text' name='kime' id='kime' value=''/>
							<form class="form-horizontal" action='korisnik.php' method="post">
							<?php
							$k_ime = $_POST['kime'];
							$query = $db->prepare("SELECT * FROM korisnik WHERE kime = :k_ime");				
							$query-> execute(array(':k_ime' => $k_ime ));
							$result = $query->fetch();
							?>
								<table class="table table-striped">	
									<tr><th style="vertical-align:middle"><center>Korisničko Ime</center></th><td><input readonly class="form-control"  name="username" value="<?php print $result['kime'] ?>"id="username" type="text"></td></tr>
									<tr><th style="vertical-align:middle"><center>Ime</center></th><td><input class="form-control" onkeydown="ime(this)" onkeyup="ime(this)" onblur="ime(this)" onclick="ime(this)"  name="name" id="name" value="<?php print $result['ime'] ?>"  type="text"></td></tr>
									<tr><th style="vertical-align:middle"><center>Prezime</center></th><td><input class="form-control" onkeydown="ime(this)" onkeyup="ime(this)" onblur="ime(this)" onclick="ime(this)" name="surname" id="surname" value="<?php print $result['prezime'] ?>" type="text"></td></tr>
									<tr><th style="vertical-align:middle"><center>E-Mail</center></th><td><input class="form-control" name="email" id="email" onkeydown="emailk(this)" onkeyup="emailk(this)" onblur="emailk(this)" onclick="emailk(this)" value="<?php print $result['email'] ?>" type="email"></td></tr>
									<tr><th style="vertical-align:middle"><center>Kredit</center></th><td><input class="form-control" name="kredit" id="kredit" onkeydown="alpha(this)" onkeyup="alpha(this)" onblur="alpha(this)" onclick="alpha(this)" value="<?php print $result['kredit'] ?>" type="number"></td></tr>
								</table>
						</div><!-- end body-->
						<hr/>
						<div class="modal-footer">
							<input type="submit" class="btn btn-success pull-left" name="editk" value="Spremi Promjene" />
							</form> 		
							<button class="btn btn-default pull-right" data-dismiss="modal" type="button">Odustani</button>
						</div><!-- end footer -->
					</div><!-- end modal-content -->
				</div><!-- end modal-dialog -->
			</div><!-- end modal -->			
<?php
			if(isset($_POST['brisi']))
			{
				if($_SESSION['vrstak'] == '0')
				{
					$query= $db->prepare("DELETE FROM korisnik WHERE kime = :id_user");
					$result = $query->execute(array(':id_user' => $_POST['id_user']));
					if($query) PRINT "<center>USPJEŠNO OBRISANO</center>";
					
				}
				//header('Location: '.$_SERVER['REQUEST_URI']);
			}

			if(isset($_POST['editk']))
			{
				$query = "UPDATE korisnik SET kime = :kime, ime = :ime, prezime = :prezime, email = :email, kredit = :kredit WHERE kime = :kime";
				$query_params = array( 
				':kime' => $_POST['username'],
				':ime' => $_POST['name'], 										
				':prezime' => $_POST['surname'], 
				':email' => $_POST['email'],
				':kredit' => $_POST['kredit'] 
				); 
				  
				$stmt = $db->prepare($query); 
				$result = $stmt->execute($query_params); 
				
				if($result)
				{
					echo "<center>Promjene su uspješno izvršene!</center>"; 
				}
			}//kraj editk
		}//kraj vrsta
	}//kraj login		
?>
</div> <!--kraj containera --> <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<?php
include_once("footer.php"); 
?>

Ovo dole mi se nalazi u footer.php.

$(document).on("click", ".open-myModal1", function () 
{
	var kime = $(this).data('id');
	$(".modal-body #kime").val( kime );
	$.post('korisnik.php', { 'kime': kime });
});

Problem je sljedeci:

Imam tipku koju sam stavio da se otvara u Modal-u. Tipka sluzi sa editiranje korisnika. Kad se klikne na tipku pozove se modal i tom modalu bi se trebala prosljediti varijabla koja se koristi u query-ju. Zbog toga sam napravio java funkciju u footeru, ali međutim ne radi kak treba nesto. Testirao sam java funkciju u gchromu i vidim pod network tabom da kad se klikne na tipku jquery odradi svoje i posalje preko $_POST[‘kime’] varijablu, međutim varijabla nikako da stigne u modal.
$kime = $_POST[‘kime’]; ne radi. Mora pretpostavka koliko sam istrazivao je da to ne radi zbog toga sto se php odvija na serveru, dok se Java odvija na klijentu. Je li moze netko proci kroz kod i reci gdje radim gresku ili kako ovaj problem rjesit. Ako treba header.php i footer.php postam i to. Kod i svi queriji rade, jer kad rucno ukucam ID usera onda sve se tablice popunjavaju kak spada.

Ovo na slici gore je varijabla koju ja trebam dobiti preko $_POST, ali ne mogu. Međutim preko $(".modal-body #kime").val( kime ); varijabla dodje, ali samo kao value u polje koje ima ID=‘kime’, što mi nije od neke koristi jer mi treba spremljeno u nekoj varijabli kako bi moga koristi u queriju.

Probaj:

$('#myModal1').on('show.bs.modal', function (event) {
              
             var modal = $(this);
              var button = $(event.relatedTarget)
              var id = button.data('id')
              
              modal.find('.modal-body #kime').val(id);
              
            })

Ajde napravi

$(document).on("click", ".open-myModal1", function () 
{
	var kime = $(this).data('id');
	alert(kime);
});

Pa i tu bi ti trebalo izbaciti id, i daj mi reci sto zelis sa ovime dobiti

$(".modal-body #kime").val( kime );

Ukoliko zelis pokupiti sve podatke iz forma koristi http://api.jquery.com/serialize/

@Dooki

to sam ubacio cisto kao test

$(".modal-body #kime").val( kime );

kad unutar modal-body napravim input polje sa id=‘kime’ onda se popuni value tog input polja sa poslanom vrijednoscu. Taj dio brisem kad mi proradi ovo sa $_POST[‘kime’];

Vidis to na slici ovo polje gore gdje pise ibasic.

Alert radi, znaci kad kliknem na tipku pojavi se prozor, ali meni treba da mi u modal dodje vrijednost i da je mogu spremit u neku varijablu i koristit je za query.

$.post('korisnik.php', { 'kime': kime }); 

Koliko sam citao sa ovim gore bi meni u modal trebala doci vrijednost u obliku $_POST[‘kime’] gdje ja onda tu vrijednost mogu spremit u $kime = $_POST[‘kime’] i koristit dalje za upite ili stogod.

Jesi probao moj kod?

Bas sam sad stavio. To je slicno ovome $(".modal-body #kime").val( kime ); ne? Ovo moje radi isto, ali meni ne treba da mi se vrijednost prosljeduje u neko input/button polje, vec mi treba spremljena u neku varijablu.

$k_ime = $_POST['kime'];
$query = $db->prepare("SELECT * FROM korisnik WHERE kime = :k_ime");				
$query-> execute(array(':k_ime' => $k_ime ));
$result = $query->fetch();

Ovaj query mi se uopce ne izvrsi jer ovaj $_POST[‘kime’]; nikad ne dođe uopce, a ne znam kak bi spremio vrijednost value polja nekoga input-a u neku varijablu. Je li uopce tako sto moguce?

<input type='text' name='kime' id='kime' value=''/>

Ovo imam na stranici i to je ovo prvo polje sto se vidi na slici gdje pise ibasic. U to polje mi dodje vrijednost koju trebam, ali nije spremljenja u neku varijablu. Ne znam kak da je spremim u varijablu iz tog polja, a ovako kako je ne mogu iskoristi u queriju.

Ako zelis vrijednost od inputa sa id=“kime” dobit ces je ovako

var kime = $(".modal-body #kime").val();

I jesi provjerio dali si uopce uspjesno povezo js i php ?

Ovako prosledjujes u modal podatke, u zavisnosti kojeg usera hoces da editujes (koji button stisnes). Ne znam stvarno sta ti nije jasno ovde? Jednostavno u button stavljaj podatke usera (data-id, data-username, data-ime, data-prezime, data-email, data-kredit) i onda koristis ovaj kod:

$('#myModal1').on('show.bs.modal', function (event) {

              var modal = $(this);
              var button = $(event.relatedTarget);
              
              var id = button.data('id');
              var username = button.data("username");
              var ime = button.data("ime");
              var prezime = button.data("prezime");
              var kredit = button.data("kredit");

              modal.find('.modal-body #kime').val(id);
              modal.find('.modal-body #username').val(username);
              modal.find('.modal-body #ime').val(ime);
              modal.find('.modal-body #prezime').val(prezime);
              modal.find('.modal-body #kredit').val(kredit);

            })

I izbaci taj query iz modala u kojem trazis usera. Potrudi se da skontas…

Aha, znaci ja moram obavit cijeli query i imati sve podatke koje zelim prije pozivanja modala i prilikom pozivanja modala odmah mu preko java prosljedit sve podatke koje zelim?

Koliko sam ja citao na upit slican ovome, puno je ljudi na stackoverflow odgovorilo da se moze vrijednost poslati i preko $_POST i onda bi jednostavno tamo napravio query i popunio polja, tj. sve bi radilo kak sam ja to i napravio. Jedini problem je sto nikako nisam mogao trazenu vrijednost dobiti u modalu. Radilo je ovako preko input polja, ali nema veze sad. Budem sutra pokusao ovako kak si rekao napravit pa cu vidjeti. Ak sam shvatio dobro onda bi trebalo to sve radit.

Hvala

Ajde evo ti kod.

<?php
session_start();
include_once("header.php");

?>
<div style="padding-bottom:100px;"></div><br/>
<?php		
	if (($_SESSION['login'] == TRUE))
	{	
		//pocetak admin
		if (($_SESSION['vrstak'] == '0'))
		{	
			?>
			<center>
			<form action="korisnik.php" method="post" id="msform">
			<input type="text" name="korisnik" value="" placeholder="Unesite korisničko ime, npr. ibasic"/>
			<input type="submit" value="PRETRAGA"/>
			</form>
			</center>
		<?php
			if(isset($_POST['korisnik']))
			{
				$query = $db->prepare("SELECT * FROM korisnik WHERE kime LIKE :kime AND vrstak = :vrsta ORDER BY kime");				
				$query->execute(array(':kime' => $_POST['korisnik'].'%',
									   ':vrsta' => '2'));
				$result = $query->fetchAll();
				?>
				<table class="table table-striped">
				<tr>
				<th><center>Korisničko Ime</center></th>
				<th><center>Ime</center></th>
				<th><center>Prezime</center></th>
				<th><center>E-Mail</center></th>
				<th><center>Kredit</center></th>
				</tr>
				<?php
				foreach ($result as $row) 
				{
				?>
					<tr>
					<td><center><?php print $row['kime']?></center></td>
					<td><center><?php print $row['ime']?></center></td>
					<td><center><?php print $row['prezime']?></center></td>
					<td><center><?php print $row['email']?></center></td>
					<td><center><?php print $row['kredit']?></center></td>
					<td width="80px">
					<center>
					<form style="float: left" action="korisnik.php" method="post">
					<input type="hidden" name="id_user" value="<?php print $row['kime']?>" />
					<button type="submit" name="brisi" class='glyphicon glyphicon-trash'/>
					</form>
					<button href="#myModal1" role="button" data-toggle="modal" data-id="<?php print $row['kime']?>" data-ime="<?=$row['ime'];?>" data-prezime="<?=$row['prezime'];?>" data-email="<?=$row['email'];?>" data-kredit="<?=$row['kredit'];?>" class="open-myModal1"><span id="sredina_moje" class="glyphicon glyphicon-edit"/></button>
					</center>
					</td>
					</tr>
				<?php
				}
				?>
				</table>
			<?php	
			}

			?>
			<div class="modal fade" id="myModal1">
				<div class="modal-dialog">
					<div class="modal-content">
						<div class="modal-header">
							<button class="close" data-dismiss="modal">&times;</button>
							<center><h4 class="modal-title">EDIT KORISNIKA</h4></center>
						</div><!-- end header -->
						<hr/>
						<div class="modal-body">
							<!--<input type="text" name="kime" id="kime" value=""/>-->
							<form class="form-horizontal" action='korisnik.php' method="post">
						
								<table class="table table-striped">	
									<tr><th style="vertical-align:middle"><center>Korisničko Ime</center></th><td><input readonly class="form-control"  name="username" value=""id="username" type="text"></td></tr>
									<tr><th style="vertical-align:middle"><center>Ime</center></th><td><input class="form-control" onkeydown="ime(this)" onkeyup="ime(this)" onblur="ime(this)" onclick="ime(this)"  name="name" id="name" value=""  type="text"></td></tr>
									<tr><th style="vertical-align:middle"><center>Prezime</center></th><td><input class="form-control" onkeydown="ime(this)" onkeyup="ime(this)" onblur="ime(this)" onclick="ime(this)" name="surname" id="surname" value="" type="text"></td></tr>
									<tr><th style="vertical-align:middle"><center>E-Mail</center></th><td><input class="form-control" name="email" id="email" onkeydown="emailk(this)" onkeyup="emailk(this)" onblur="emailk(this)" onclick="emailk(this)" value="" type="email"></td></tr>
									<tr><th style="vertical-align:middle"><center>Kredit</center></th><td><input class="form-control" name="kredit" id="kredit" onkeydown="alpha(this)" onkeyup="alpha(this)" onblur="alpha(this)" onclick="alpha(this)" value="" type="number"></td></tr>
								</table>
						</div><!-- end body-->
						<hr/>
						<div class="modal-footer">
							<input type="submit" class="btn btn-success pull-left" name="editk" value="Spremi Promjene" />
							</form> 		
							<button class="btn btn-default pull-right" data-dismiss="modal" type="button">Odustani</button>
						</div><!-- end footer -->
					</div><!-- end modal-content -->
				</div><!-- end modal-dialog -->
			</div><!-- end modal -->			
<?php
			if(isset($_POST['brisi']))
			{
				if($_SESSION['vrstak'] == '0')
				{
					$query= $db->prepare("DELETE FROM korisnik WHERE kime = :id_user");
					$result = $query->execute(array(':id_user' => $_POST['id_user']));
					if($query) PRINT "<center>USPJEŠNO OBRISANO</center>";

				}
				//header('Location: '.$_SERVER['REQUEST_URI']);
			}

			if(isset($_POST['editk']))
			{
				$query = "UPDATE korisnik SET kime = :kime, ime = :ime, prezime = :prezime, email = :email, kredit = :kredit WHERE kime = :kime";
				$query_params = array( 
				':kime' => $_POST['username'],
				':ime' => $_POST['name'], 										
				':prezime' => $_POST['surname'], 
				':email' => $_POST['email'],
				':kredit' => $_POST['kredit'] 
				); 

				$stmt = $db->prepare($query); 
				$result = $stmt->execute($query_params); 

				if($result)
				{
					echo "<center>Promjene su uspješno izvršene!</center>"; 
				}
			}//kraj editk
		}//kraj vrsta
	}//kraj login		
?>
</div> <!--kraj containera --> <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>

<script type="text/javascript">

	$('#myModal1').on('show.bs.modal', function (event) {

              var modal = $(this);
              var button = $(event.relatedTarget);

              var id = button.data('id');
              var ime = button.data("ime");
              var prezime = button.data("prezime");
              var email = button.data("email");
              var kredit = button.data("kredit");

              modal.find('.modal-body #username').val(id);
              modal.find('.modal-body #name').val(ime);
              modal.find('.modal-body #surname').val(prezime);
              modal.find('.modal-body #email').val(email);
              modal.find('.modal-body #kredit').val(kredit);

            })
</script>
<?php
include_once("footer.php"); 
?>
1 Like

Hvala ti stari na svemu, ali nije tvoje bas radilo ( ne znam zasto, ali kao da sve radi 5 (vjerovatno zbog imena polja) ). Na kraju sam na tvom primjeru napravio ovako

$(document).on("click", ".open-myModal1", function () 
{

  var kime = $(this).data('id');
  var ime = $(this).data('ime');
  var prezime = $(this).data('prezime');
  var email = $(this).data('email');
  var kredit = $(this).data('kredit');
  
  $(".modal-body #username").val( kime );
  $(".modal-body #name").val( ime );
  $(".modal-body #surname").val( prezime );
  $(".modal-body #email").val( email );
  $(".modal-body #kredit").val( kredit );
});

i sad radi sve ko zmaj! Puno ti hvala care! Ispricavam se za izgubljene zivce, ali sad mi je puno jasnije kako tocno modal funkcionira! Bar si me nesta naucio :smile:

Pardon, ok je to. Uzivaj.