我有一个文本框,其中ID
和NAME
名为"名称"。在我的数据库中,我有名字,介词,姓氏。在SQL中,我使用concat将这些组合成一个" name"。
当我尝试回显结果$result['name']
时,我收到浏览器错误。
我想我的代码中的多变量$name =
出了问题。但我无法解决它。
有人知道我的代码有什么问题吗?
<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "db";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname) ;
// Check connection
if ($conn->connect_error) {
die('Connection failed: ' . $conn->connect_error) ;
}else {
$id = isset($_POST['id']) ? $_POST['id'] : '';
$name = isset($_POST['firstname']) ? $_POST['firstname'] : '';
$name .= isset($_POST['preposition']) ? $_POST['preposition'] : '';
$name .= isset($_POST['lastname']) ? $_POST['lastname'] : '';
$query = 'SELECT concat(firstname, ' ', preposition, ' ', lastname) as name FROM users WHERE id="' . mysqli_real_escape_string($conn, $id) . '"';
$res = mysqli_query($conn, $query) ;
if (mysqli_num_rows($res) > 0) {
$result = mysqli_fetch_assoc($res) ;
echo $result['name'];
}else{
$result = mysqli_fetch_assoc($res) ;
echo $result['name'];
}
}
?>
修改1:
文本框:
<input type="text" class="form-control" id="name" name="name">
使用Javascript:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
function getUser(value) { // Do an Ajax request to retrieve the product price
console.log("getUser before ajax", jQuery('#id').val());
jQuery.ajax({
url: './get/get5.php',
method: 'POST',
data: {'id' : jQuery('#id').val()},
success: function(response){
console.log("getUser after ajax", jQuery('#id').val());
jQuery('#name').val(response);
},
error: function (request, status, error) {
alert(request.responseText);
},
});
}
</script>