Сохранить идентификатор из базы данных PHP как переменную

0

Я работаю над оффлайновым веб-приложением. Но в определенный момент ему необходимо получить данные из базы данных sql. Это делается с помощью iframe. Однако файлы PHP распечатывают все доступные данные. Каждая строка данных имеет идентификатор workID, и я хочу, чтобы они были интерактивными. Когда вы нажимаете на идентификатор работы, мне нужно сохранить идентификатор работы как переменную, чтобы я мог использовать идентификатор работы через все мое приложение. Например: я выбираю 1 идентификатор работы. Onclick идентификатор работы записывается в моем заголовке на каждой странице. Я не знаю, можно ли это сделать с помощью файлов cookie или просто функции javascript на главной странице.

См. Следующий код:

<?php

$result=mysql_query("SELECT workid,problem,request FROM workreport ORDER BY workid;");

$i=0;
while( $row=mysql_fetch_array($result) )
{
    if($i>0)
    {
        echo "<tr valign=bottom>";
        echo "</tr>";
    }
    echo "<tr valign=center>";
    echo "<td class=tabval></td>";
    echo "<td class=tabval><b>".htmlspecialchars($row['workid'])."</b></button></td>";
    echo "<td class=tabval>".htmlspecialchars($row['problem'])."&nbsp;</td>";
    echo "<td class=tabval>".htmlspecialchars($row['request'])."&nbsp;</td>";
    $i++;
}?>

PHP загружается в iframe. Поэтому я предпочитаю создавать функцию для сохранения идентификатора работы на моей главной странице.

<iframe src="http://localhost/receive.php" width="400" height="300" style="border:none;"> </iframe>

Надеюсь, ты поможешь мне! заранее спасибо.

  • 0
    Вы можете использовать куки или localStorage
  • 4
    Лучший совет, который я могу вам дать: изучите обновленные технологии. Во-первых, PHP-библиотека mysql_ устарела, и скоро она вообще будет удалена: замените ее на PDO. Во-вторых, iframes обычно считаются плохой практикой: вы можете заменить их на AJAX в большинстве случаев.
Теги:
offline
iframe

1 ответ

0
Лучший ответ

Вы можете сделать это так, используя javascript и PHP:
PHP:

while( $row=mysql_fetch_array($result) )
{
if($i>0)
{
    echo "<tr valign=bottom>";
    echo "</tr>";
}
echo "<tr valign=center>";
echo "<td class=tabval></td>";
echo "<td class=tabval><button id=\"saveid\"><b>".htmlspecialchars($row['workid'])."</b></button></td>";
echo "<td class=tabval>".htmlspecialchars($row['problem'])."&nbsp;</td>";
echo "<td class=tabval>".htmlspecialchars($row['request'])."&nbsp;</td>";
$i++;
}

Javascript

window.onload = function () {
  document.getElementById('saveid').onclick = function () {
   var id = this.innerHTML;
   document.cookie = "saveid=" + id + ", expires=Monday, 04-Apr-2020 05:00:00 GMT";
   alert('Cookie saved!');
  }
}

Хорошо, cookie теперь сохранен. Вы можете получить доступ к нему на PHP с помощью $ _COOKIE ['saveid].

  • 0
    Спасибо за помощь. Это работает в какой-то момент. Это может предупредить ID моего первого элемента. Однако он ничего не делает с другими строками, вставленными в мою базу данных. И так как я запускаю файл PHP в фрейме i, я не могу вызвать cookie (пробовал также с локальным хранилищем) на других страницах. У вас есть решение для этого?
  • 0
    Если вы включите файл php до того, как нажмете #saveid, он не будет работать ... Ups, моя ошибка! Я установил имя файла cookie в «id». Я исправил это, теперь это должно работать!
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню