Каков синтаксис записи для запроса базы данных SQLITE из сценария HTML? Код ниже (который, кстати, прекрасно работает, когда используется в отдельном файле PHP) ничего не возвращает в текстовой области ....

Любая помощь будет высоко оценен. Благодарность

<p>Patient search:</p> 
<textarea id="SearchBoxPt" textarea name="SearchBoxPt" style="height: 30px; resize: none; width: 600px;">       
</textarea></p> 

<button type="button" onclick="populateField_SearchPt()">Load Pt 1</button>

<script>
function populateField_SearchPt() 
{        
    <?php
    class MyDB extends SQLite3
    {
        function __construct()
        {
            $this->open('Anagrafica.db');
        }
    }

    $db = new MyDB();
    if(!$db)
    {
        echo $db->lastErrorMsg();
    } else 
    {
        echo "Opened database successfully\n\n";
    }

    $results = $db->query('SELECT name FROM Anagrafica WHERE hospital_ID="1"');
    ?>    

    document.getElementById ("SearchBoxPt").value = $results; 
}
</script>
0
jeddi 28 Май 2017 в 23:57

2 ответа

Лучший ответ

Вот пример

< Сильный > PHP

<?php
class MyDB extends SQLite3
{
    function __construct()
    {
        $this->open('Anagrafica.db');
    }
}

$db = new MyDB();
if(!$db)
{
    echo $db->lastErrorMsg();
}

$hId = $_GET['hId']; //we're getting the passed hId as a paramater in the url

$query = $db->prepare("SELECT name FROM Anagrafica WHERE hospital_ID=:id");
$query->bindValue(':id', $hId, SQLITE3_INTEGER);
$results = $query->execute()->fetchArray();
echo $results['name'];
?>

< Сильный > HTML

<p>Enter Hospital Id:
    <input id="HospitalId" type="number" value="1">
</p>

<p>Patient search:</p> 
<textarea id="SearchBoxPt" textarea name="SearchBoxPt" style="height: 30px; resize: none; width: 600px;">       
</textarea>
</p> 

<button type="button" onclick="populateField_SearchPt()">Load Pt 1</button>

<script>
function populateField_SearchPt() 
{
    var inputId = document.getElementById("HospitalId").value; //we get the user input value and put it in a var

    var xhttp = new XMLHttpRequest();
    xhttp.open("GET", "path/to/yourPhpFile.php?hId=" + inputId, true); // we're passing the hId to the server as a parameter
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("SearchBoxPt").value = this.responseText;
        }
    };
    xhttp.send(); 

}
</script>
1
sic-sic 30 Май 2017 в 21:16

Вы не можете помещать php скрипты в javascript , зная, что php выполняется на стороне сервера, а не в браузере.

Решение состоит в том, чтобы сохранить php код в отдельном файле и каждый раз нажимать кнопку ajax , чтобы получить данные из базы данных.

< Сильный > PHP

<?php
class MyDB extends SQLite3
{
    function __construct()
    {
        $this->open('Anagrafica.db');
    }
}

$db = new MyDB();
if(!$db)
{
    echo $db->lastErrorMsg();
}

$results = $db->query('SELECT name FROM Anagrafica WHERE hospital_ID="1"')->fetchArray();
echo $results['name'];
?>    

< Сильный > HTML

<p>Patient search:</p> 
<textarea id="SearchBoxPt" textarea name="SearchBoxPt" style="height: 30px; resize: none; width: 600px;">       
</textarea>
</p> 

<button type="button" onclick="populateField_SearchPt()">Load Pt 1</button>

<script>
function populateField_SearchPt() 
{
    var xhttp = new XMLHttpRequest();
    xhttp.open("GET", "path/to/yourPhpFile.php", true);
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("SearchBoxPt").value = this.responseText;
        }
    };
    xhttp.send(); 

}
</script>
1
sic-sic 29 Май 2017 в 13:42