Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP]Wynik wyświtalny w innej tabeli
Forum PHP.pl > Forum > Przedszkole
norfear
Witam tak jak w temacie. Mam problem z jednym elementem chodzi oto żeby wynik który po wybraniu 3 pol select wyświetlil mi się w innym oknie tabelki. Chodzi o ten link.
Link do stronki
http://accgold.hostklub.pl/test2/test.php

kod plików
Kod
<?php
if(!isset($_SESSION)) session_start();

$server = 'xxx';
$user = 'xxx';
$pass = 'xxx';
$dbase = 'xxx';

$table = 'sites';
$ar_cols = array('alfabet', 'serwer', 'frakcja', 'opis');

$preid = 'slo_';        
$col = $ar_cols[0];    
$re_html = '';          

// if there is data sent via POST, with index 'col' and 'wval'
if(isset($_POST['col']) && isset($_POST['wval'])) {
  // set the $col that will be selected and the value for WHERE (delete tags and external spaces in $_POST)
  $col = trim(strip_tags($_POST['col']));
  $wval = "'".trim(strip_tags($_POST['wval']))."'";
}

$key = array_search($col, $ar_cols);            // get the key associated with the value of $col in $ar_cols
$wcol = $key===0 ? $col : $ar_cols[$key-1];     // gets the column for the WHERE clause
$_SESSION['ar_cols'][$wcol] = isset($wval) ? $wval : $wcol;    // store in SESSION the column and its value for WHERE
  
// gets the next element in $ar_cols (needed in the onchange() function in <select> tag)
$last_key = count($ar_cols)-1;
$next_col = $key<$last_key ? $ar_cols[$key+1] : '';

$conn = new mysqli($server, $user, $pass, $dbase);     // connect to the MySQL database

if (mysqli_connect_errno()) { exit('Connect failed: '. mysqli_connect_error()); }     // check connection

// sets an array with data of the WHERE condition (column=value) for SELECT query
for($i=1; $i<=$key; $i++) {
  $ar_where[] = '`'.$ar_cols[$i-1].'`='.$_SESSION['ar_cols'][$ar_cols[$i-1]];
}

// define a string with the WHERE condition, and then the SELECT query
$where = isset($ar_where) ? ' WHERE '. implode($ar_where, ' AND ') : '';
$sql = "SELECT DISTINCT `$col` FROM `$table`".$where;

$result = $conn->query($sql);       // perform the query and store the result

// if the $result contains at least one row
if ($result->num_rows > 0) {
  // sets the "onchange" event, which is added in <select> tag
  $onchg = $next_col!==null ? " onchange=\"ajaxReq('$next_col', this.value);\"" : '';

  // sets the select tag list (and the first <option>), if it's not the last column
  if($col!=$ar_cols[$last_key]) $re_html = $col. ': <select name="'. $col. '"'. $onchg. '><option>- - -</option>';

  while($row = $result->fetch_assoc()) {
    // if its the last column, reurns its data, else, adds data in OPTION tags
    if($col==$ar_cols[$last_key]) $re_html .= '<br/>'.


'<a href="'.$row[$col].'" target="_strona">Kliknij tutaj</a>';






    else $re_html .= '<option value="'. $row[$col]. '">'. $row[$col]. '</option>';
  }

  if($col!=$ar_cols[$last_key]) $re_html .= '</select> ';        // ends the Select list
}
else { $re_html = '0 results'; }

$conn->close();

// if the selected column, $col, is the first column in $ar_cols
if($col==$ar_cols[0]) {
  // adds html code with SPAN (or DIV for last item) where Ajax will add the select dropdown lists
  // with ID in each SPAN, according to the columns added in $ar_cols
  for($i=1; $i<count($ar_cols); $i++) {
    if($ar_cols[$i]===null) continue;
    if($i==$last_key) $re_html .= '<div id="'. $preid.$ar_cols[$i]. '"> </div>';
    else $re_html .= '<span id="'. $preid.$ar_cols[$i]. '"> </span>';
  }

  // adds the columns in JS (used in removeLists() to remove the next displayed lists when makes other selects)
  $re_html .= '<script type="text/javascript">var ar_cols = '.json_encode($ar_cols).'; var preid = "'. $preid. '";</script>';
}

else echo $re_html;




?>


plik wktórym jest tabelka
Kod
<?php include 'select_list.php'; ?>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<script src="ajax_select.js" type="text/javascript"></script>
</head>


<div id="'. $preid.$ar_cols[$i]. '"> </div>



<table width="750" align="center" cellspacing="0" cellpadding="10">
<tr>
<td bgcolor="red" colspan="2" align="center" valign="middle">



<body>
<form action="" method="post">
Wybierz: <?php echo $re_html; ?>






</form>

</body>




</td>
</tr>
<tr>

<td bgcolor="grey" valign="top"><iframe name="strona" src="home.html" width="560" height="440" frameborder="0"></iframe></td>
</tr>
</table>





</html>



Dodam że głownie eksperymentowałem z tym znacznikiem w pierwszym kodzie
<a href="'.$row[$col].'" target="_strona">Kliknij tutaj</a>';
Gdyz wydaje mi sie ze tutaj tkwi problem

Swirek
możesz się jeszcze sprecyzować chodzi o to aby po klinięciu tego linka dynamicznie utworzonego otwierać adres strony w ramce poniżej tak? jeżeli tak to wywal _ przed nazwą ramki z linka
popraw też linki dołóż przed nimi http:// aby otwierany adres nie był dopisywany do aktualnego
norfear
Znacznik skasowałem i faktycznie to pomogło natomiast co do http:// to niestety dalej nie działa nawet po wprowadzeniu tego znacznika
na stronie msql nie da sie otworzyć linka chyba ze otwieram go na nowej stronie np " ctrl+LPM"


Natomiast da się otworzyć inny plik który znajduje sie w tym samym folderze gdzie jest ten skrypt.

Po prostu matrix smile.gif

Tak czy owak banalne rzeczy a zabrały mi dwa dni z życia dziękuje za pomoc


Drugie pytanie do tego topiku a wiesz może jak to zmienić funkcje tego że zamiast wyświetlania się linku odrazu było to ładowane na doł strony tzn jego zawartość?

Czy to już wyższa szkoła jazdy?

P.S Jak byś oczywiście chciał mogę ci podesłać cały ten skrypt wraz z przykładowa baza do włąsnych zastosowań
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.