Autor Zpráva
jirikovovideni
Profil
Zdravím,
pracuji ve wordpressu a mám kód na výpis modelek.Mám takovou představu,že když klinku na stránku xx.cz zobrazí se mi nadledové fotky a jméno.Fotku budu mít jako odkaz na podrobnější výpis.Zkusil jsem použít příkaz GET,ale se zobrazi se mi pouze počáteční stránka a nemohu přijít na to kde mám chybu,nebo spíš jestli mohu použít GET.Chtěl bych poprosit,jestli by jste se na to nekoukli a neporadili mi,nebo aspoň nesměrovali.díky moc
<?if (isset($_GET['ok']))
{
$bbb = ($_GET['ok']);
$formName = 'modelky';
$fieldNameWithFile = 'fotka-obliceje';
$fieldNameWithFile1 = 'fotka-postavy';
$fieldNameWithFile2 = 'fotka-1';
$fieldNameWithFile3 = 'fotka-2';
$fieldNameWithFile4 = 'fotka-3';
require_once(ABSPATH . 'wp-content/plugins/contact-form-7-to-database-extension/CF7DBPlugin.php');
$plugin = new CF7DBPlugin();
require_once(ABSPATH . 'wp-content/plugins/contact-form-7-to-database-extension/CFDBFormIterator.php');
$exp = new CFDBFormIterator();
$exp->export('modelky', array('show' => 'jmeno,email', 'search' => "$bbb"));
while ($row = $exp->nextRow()) {
$fileUrl = $plugin->getFileUrl($row['submit_time'], $formName, $fieldNameWithFile);
$fileUrl1 = $plugin->getFileUrl($row['submit_time'], $formName, $fieldNameWithFile1);
$fileUrl2 = $plugin->getFileUrl($row['submit_time'], $formName, $fieldNameWithFile2);
$fileUrl3 = $plugin->getFileUrl($row['submit_time'], $formName, $fieldNameWithFile3);
$fileUrl4 = $plugin->getFileUrl($row['submit_time'], $formName, $fieldNameWithFile4);
{ 
echo  '<TABLE>'; 
echo "<tr><td><img src='$fileUrl' width='75' height='75'/></td><td> <img src='$fileUrl1' width='75' height='75'/></td><td> <img src='$fileUrl2' width='75' height='75'/></td><td> <img src='$fileUrl3' width='75' height='75'/></td><td> <img src='$fileUrl4' width='75' height='75'/></td><tr>";
echo '</TABLE>';
echo  '<TABLE>'; 
echo '<tr><td>Jméno a Příjmení</td><td><strong>' . $row['jmeno'] . ' ' . $row['prijmeni'] . '</strong></td> ';
echo  '<TR><td>Datum narození</td><td><strong>' . $row['den-narozeni'] . '.' . $row['mesic-narozeni'] . '.' . $row['rok-narozeni'] . '</strong></td></tr>';
echo  '</TABLE>'; 
}   }          }      
else   { 
$formName = 'modelky';
$jmeno = ($_GET['jmeno']);
$fieldNameWithFile = 'fotka-obliceje';
require_once(ABSPATH . 'wp-content/plugins/contact-form-7-to-database-extension/CF7DBPlugin.php');
$plugin = new CF7DBPlugin();
require_once(ABSPATH . 'wp-content/plugins/contact-form-7-to-database-extension/CFDBFormIterator.php');
$exp = new CFDBFormIterator();
$exp->export($formName, array());
echo  '<form name="ok" method="get"> ' ;
echo "<table id='ok'>"; 
while ($row = $exp->nextRow()) {
    $fileUrl = $plugin->getFileUrl($row['submit_time'], $formName, $fieldNameWithFile);
 $odkaz = "". $row['jmeno'] ;  
echo "<td><a href='/stranka/'><img src='$fileUrl' width='150' height='155'/></a><br>". $row['jmeno'] ."</td>"; 
    if (++$mod % 4 === 0) echo "</tr><tr>";
 }echo "</table>";  
echo  '</form> ' ;     } 
?>
Virtus
Profil
Zdravím,
takže pokud sem to pochopil dobře, tak
jirikovovideni:
Zkusil jsem použít příkaz GET
se týká řádku 39, tohohle: echo '<form name="ok" method="get"> ' ;
Fotku budu mít jako odkaz na podrobnější výpis. ...zobrazi se mi pouze počáteční stránka...
a tohle zase patří k řádku 44:echo "<td><a href='/stranka/'><img src='$fileUrl' width='150' height='155'/></a><br>". $row['jmeno'] ."</td>";
a dle řádků 3$bbb = ($_GET['ok']); a 14$exp->export('modelky', array('show' => 'jmeno,email', 'search' => "$bbb")); se očekává v proměnné $_GET['ok'] nějaké ID / pointer na konkrétní modelku.
Tak problém je v tom, že se snažíte očividně odeslat formulář kliknutím na odkaz ve formuláři, což bez javascriptu není možné a vzhledem k tomu, že vám postačujě když ukazatel na konkrétní modulku bude předán přímo v URL, je zde řešení s formulářem i s javascriptem naprosto zbytečné. Takže několik bodů co tam je špatně:
1) ve formuláři chybý tlačítko pro odeslání: <input type="submit" value="odešli">
2) i kdyby zde tlačítko pro odeslání bylo, není zde žádný prvek se jménem "ok", který by se odeslal, tudíž proměnná $_GET['ok'] by neexistovala, protože <form name="ok" method="get"> název formuláře se normálně neodesílá
4) formulář je očividně kolem všech fotek, tudíž pokud by zde byly generovány nějaké ukazatele na konkrétní modelku, odeslali by se všechny a pak by nebylo možné určit jakou modelku chcete zobrazit
5) řádek 45: if (++$mod % 4 === 0)..., nikde nevidím definovanou proměnnou $mod, takže tento řádek generuje PHP notice:
PHP Notice:  Undefined variable: mod in soubor.php on line 45
6) řádek 32 a 43, proměnné $jmeno a $odkaz, nikde se v kódu nepoužívají, je tedy zbytečné aby zde byly

takže teoreticky aby vám to fungovalo, tak by to mohlo vypadat nějak takto:
<?php
//.....
$exp->export($formName, array());
echo "<table id='ok'>"; 
$mod = 0;
while ($row = $exp->nextRow()) {
  $fileUrl = $plugin->getFileUrl($row['submit_time'], $formName, $fieldNameWithFile);
  echo "<td><a href='/stranka/?ok=".$row['pointer_na_konkretni_modelku']."'><img src='$fileUrl' width='150' height='155'/></a><br>". $row['jmeno'] ."</td>"; 
  if (++$mod % 4 === 0){
    echo "</tr><tr>";
  }
 }
 echo "</table>";  
 

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: