Ive только что начал изучать php несколько недель назад. Я пытаюсь сделать ту же программу каталогов, что и в Access. Но теперь я застрял. (я написал короткую копию программы cos, которая слишком длинная, так что это похоже на это) Проблема следующая. У меня есть inputbox (ID), который будет идентификационным номером и некоторыми текстовыми областями (в этом примере 3 из них типа year-type) для результатов. или это могут быть некоторые другие объекты. Когда я ввожу значение, база данных возвращает мне результаты из полей, где id - это значение, которое я дал. То, что до сих пор работает с ajax, но это дает 3 textareas те же результаты. Что бы я хотел добиться, так это то, что все разные результаты поля отображаются в разных текстовых областях. Ive пытался с json, но на самом деле не работал. Я поставлю здесь один с ajax (который работает хорошо, но результат должен быть разделен) и тот, который я пробовал с json. пожалуйста, если у вас есть идея, помогите мне.получить данные из mysql с ajax и json в разные текстовые поля
Это один работает, но не разделяет результаты:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Get datas from database where (ID = value of input) and get back the datas into different textareas.</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
</head>
<body>
ID number: <input type="text" id="searchid" ><br>
Result Name: <textarea id="resultname"></textarea><br>
Result Year: <textarea id="resultyear"></textarea><br>
Result Type: <textarea id="resulttype"></textarea><br>
<script>
$(document).ready(function() {
$('#searchid').keydown(function (e){ // Event for enter keydown.
if(e.keyCode == 13){
var idvalue = $("#searchid").val(); // Input value.
$.ajax({ //Ajax call.
type: "GET",
url: "search.php",
data: 'id=' + idvalue ,
success: function(msg){
// Show results in textareas.
$('#resultname').html(msg.name);
$('#resultyear').html(msg.year);
$('#resulttype').html(msg.type);
}
}); // Ajax Call
} //If statement
}); //event handler
}); //document.ready
</script>
</body>
</html>
<?php
if ($_GET['id']):
// Connect to database.
$con = mysqli_connect("localhost","Krisz","password");
mysqli_select_db ($con,'coin');
// Get the values from the table.
$sql = "SELECT Name, Year, Type FROM main_db where ID = $_GET[id] ";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_assoc($result))
{
echo "$row[Name]";
echo "$row[Year]";
echo "$row[Type]";
}
endif;
?>
Здесь я попытался с помощью JSON. я уверен, что есть много ошибок.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Get datas from database where (ID = value of input) and get back the datas into different textareas.</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#searchid').keydown(function (e){ // Event for enter keydown.
if(e.keyCode == 13){
var idvalue = $("#searchid").val(); // Input value.
$.ajax({ //Ajax call.
type: "GET",
url: "search.php",
data: 'id=' + idvalue ,
type: 'json',
success: function(msg){
// Show results in textareas.
$('#resultname').html(msg.name);
$('#resultyear').html(msg.year);
$('#resulttype').html(msg.type);
}
}); // Ajax Call
} //If statement
}); //event handler
}); //document.ready
</script>
</head>
<body>
ID number: <input type="text" id="searchid" ><br>
Result Name: <textarea id="resultname"></textarea><br>
Result Year: <textarea id="resultyear"></textarea><br>
Result Type: <textarea id="resulttype"></textarea><br>
</body>
</html>
<?php
if ($_GET['id']):
$dataid = json_decode($_GET['id']);
// Connect to database.
$con = mysqli_connect("localhost","Krisz","password");
mysqli_select_db ($con,'coin');
// Get the values from the table.
$sql = "SELECT Name, Year, Type FROM main_db where ID = '$dataid' ";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_assoc($result))
{
$name = $row[Name];
$type = $row[Type];
$year = $row[Year];
}
$rows = array('name' => $name, 'type' => $type, 'year' => $year);
echo json_encode($rows);
endif;
?>
Я не уверен, что при необходимости использовать json. Возможно, есть и другой и более простой способ сделать это.
[Запретить SQL-инъекцию!] (Http: // stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –