Софтуерно Инженерство
Loading...
kirova123 avatar kirova123 6 Точки

Задача: Render Students Info

Можете ли да ми помогнете, защо не ми печата нищо? Минавам през браузер.

<!DOCTYPE html>
<head>
    <meta charset="utf-8"/>
    <title>Render Students Info</title>
</head>
<body>

<form method = "get">
<div>
    Delimeter:
    <select name="delimeter">
        <option value=",">,</option>
        <option value="|">|</option>
        <option value="&">&</option>
    </select>
</div>
<div>
    Names:
    <input type="text"  name="names"/>
        
</div>
<div>
    Ages:
    <input type="text" name="agges"/>
        
</div>
<div>
    <input type="submit" name="filter" value="Filter!"/>
        
</div>

<?php if (isset($names, $agges)); ?>
<table border="1" cellpadding="0">
    <thead>
        <tr>
            <th>Name</th>
            <th>Age</th>
        </tr>
    </thead>
    
<tbody>
    <?php for ($i=0; $i<count($names); $i++): ?>
        <tr>
            <td><?= $names[$i]; ?></td>
            <td><?= $agges[$i]; ?></td>
        </tr>
        <?php endfor; ?>
</tbody>
</table>

</form>
</body>
</html>

Тагове:
0
PHP Web Development Basics 23/09/2017 17:36:07
iwanovw avatar iwanovw 3 Точки

Защото трябва и php логика в отделен файл: 

  1. Separate the HTML and the PHP - не случайно са го написали 

 

0
AntonPortenov avatar AntonPortenov 77 Точки

Добра практика е да са отделно, но пак ще работи. Трябва да го тествам, че отскоро се занимавам с php, но виждам някои проблеми. В isset не си кказал $_GET. После ти взимаш някакви променливи , които уж трябва да се мапнат към inputите със същото име, но според мен те са напълно различни. После имаш count($names) ама names не ти е глобална следователно е undefined. И последно по никакъв начин не го принтираш на броусъра. Echo, printf и т.н

0
dvdty avatar dvdty 461 Точки

Не точно. Проблема е тук: <?php if (isset($names, $agges)); ?>

Този if  е винаги не верен, тъй като никъде не присвуяваш променливите. Първо ти трябва нещо от сорта на:

$name = $_GET["name"];
$age = $_GET["age"];

$names не просто не е ти е глобална промелнива, тя не съществува.

Относно принтирането, всъщост го има и при вярна задача, ще си е на ред. <?= е равноположно на <?php echo.

0
23/09/2017 19:47:22
darcoto avatar darcoto 15 Точки

Коментарите на @dvdty са най-коректни - липсва фактическото даване на стойност на двата масива.

Не е достатъчно само да се вземат от $_GET.

 Обърнете внимание в какъв вид идват от там и в какъв трябва да се докарат за да се върти по тях

0
23/09/2017 21:00:29
kirova123 avatar kirova123 6 Точки

След подсказката ми дава само първия символ от буквата на името и съответно на годината в таблицата. Интересно ми е от къде идва това?

0
dvdty avatar dvdty 461 Точки

Сложи целия код в http://Pastebin.com и го постни тук, отново.

0
darcoto avatar darcoto 15 Точки

Не си обърала внимание на втората част от моя коментар - в какъв тип влизат данните от $_GET и в какъв ни трябват за цикъла

0
kirova123 avatar kirova123 6 Точки

Благодаря Ви!

0