簡體   English   中英

$ _POST不使用標記形式從輸入文本接收數據

[英]$_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM