[英]$_POST doesnt receive data from input text using tag form
我在將我的輸入文本中的值發送到我的PHP代碼中的變量( $ name )時遇到問題:
在這里,我將數據發送到edit.php
<form action="edit.php" method="post">
<input type="text" name="edit_text"/>
<input id="send" type="submit"/>
</form>
我的edit.php文件:
<?php
header("Content-Type: application/json");
$name = isset($_POST["edit_text"])?$_POST["edit_text"]:"";
$con=mysqli_connect("localhost","root","root","example");
$result = mysqli_query($con,"SELECT * FROM items WHERE name = '".$name."'");
$row = mysqli_fetch_array($result, MYSQL_ASSOC);
echo json_encode($row);
mysqli_close($con);
?>
我正在表中查找記錄,然后返回帶有查詢值的json對象。 但這僅在我將項目名稱直接放在字符串中時才有效:
$result = mysqli_query($con,"SELECT * FROM items WHERE name = 'ITEM'");
我使用getjson和console.log()看看會發生什么,它從表中返回具有正確值的json對象。
但是,如果我使用相同的查詢但變量$ name已分配與查詢串聯的我的商品的相同名稱,則該查詢將不起作用。
$result = mysqli_query($con,"SELECT * FROM items WHERE name = '".$name."'");
它總是返回空值,就好像從輸入文本中什么都沒有分配給我的$ name變量一樣。
我會將您的代碼更改為以下內容:
if (isset($_POST['edit_text'])) {
$name = $_POST['edit_text'];
$con=mysqli_connect("localhost","root","root","example");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$result = mysqli_query($con,"SELECT * FROM items WHERE name = '$name'");
$data = array();
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
// Noitcie ^ the 'I' here
$data[] = $row;
}
mysqli_close($con);
echo json_encode($data);
}
另外,如果您使用雙引號,則不需要連接變量。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.