簡體   English   中英

無法讀取/傳遞JS值到PHP服務器

[英]Not able to read/pass JS value to server in PHP

我正在DropDown中從Mysql獲取值。 根據用戶選擇,應填充一個表。 但是無論我在下拉菜單中選擇什么,它都不會發送到服務器。

請找到以下代碼:

在下拉菜單中獲取值

<?php 
                    $result = mysqli_query($con, "SELECT name FROM restaurants;");
                    echo "<select name='sub1' id='resdropdown' onchange = 'showMenu(this.value)'>";
                    while ($row = mysqli_fetch_array($result)){
                        echo "<option value='" . $row['name'] ."'>" . $row['name'] . "</option>";
                    }
                    echo "</select>";
    ?>

向服務器發送價值的腳本

function showMenu(str) {
     /* var x = document.getElementById('resdropdown');
        str = x.value;
        alert(str);  */
        var ajax = new XMLHttpRequest();
        var method = "GET";

        var asynchronous = true;
        var data = str;

        ajax.open(method, "test.php?q="+data, asynchronous);

        //sending ajax request
        ajax.send();


        ajax.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("testajaxid").innerHTML = this.responseText;
                alert(str);
            }
        };

    } 

從服務器獲取響應

        $q = $_GET['data'];

        $result = mysqli_query($con, "SELECT * FROM items where  id = '".$q."'");


        while($row = mysqli_fetch_array($result))
        {
            echo '<tr><td>'.$row["name"].'</td><td>'.$row["price"].'</td>';                      
            echo '<td><div class="input-field col s12"><label for='.$row["id"].' class="">Quantity</label>';
            echo '<input id="'.$row["id"].'" name="'.$row['id'].'" type="text" data-error=".errorTxt'.$row["id"].'"><div class="errorTxt'.$row["id"].'"></div></td></tr>';
        }

您的$ _GET變量應為$_GET['q']而不是$_GET['data'] ,因為您將URL設置為test.php?q=data

另外,由於存在SQL注入的風險,因此不應將原始用戶提供的數據放入SQL查詢中,而應使用預處理語句

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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