簡體   English   中英

通過POST使用ajax傳遞多個參數到php

[英]Passing multiple parameters by POST using ajax to php

我正在嘗試通過POST方法使用AJAX將多個參數傳遞給我的PHP文件,以便我可以查詢MySQL數據庫。

HTML文件:

        <div class="dropdown dropdown-dark">
            <select  class="dropdown-select" id="searchselect11" required>

                        <option value="faculty">Faculty</option>
                        <option value="dept">Dept.</option>
                        <option value="course">Course</option>
                        <option value="year">Year</option>
                        <option value="name">Name</option>

            </select>
        </div> 


<td style="padding:5px;"> <input type="text" id="searchtext11" required></td>

<button id="searchgo1"  onclick="searchone()"></button>

這是我成功訪問下拉值和文本框值的Javascript文件,並分別將它們存儲在svsearchtext11變量中。 但問題是將兩個值傳遞給PHP文件。 問題似乎是在xmlhttp.send(the_data);傳遞的the_data變量中xmlhttp.send(the_data);

searchone()函數如下:

function searchone()
{
//alert("hi");

var xmlhttp;
var sel = document.getElementById('searchselect11'); 
var sv = sel.options[sel.selectedIndex].value;
var searchtext11= document.getElementById("searchtext11").value;
var  the_data = 'select='+sv+'text='+searchtext11;


if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }




  xmlhttp.open("POST", "searchone.php", true);          
  xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");            
  xmlhttp.send(the_data);       


  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
      document.getElementById("searchresults").innerHTML = xmlhttp.responseText;
    }
  }
}

此PHP代碼僅適用於

var the_data='select='+sv;

searchone.php

<?php   


if (isset($_POST['select'])) {
    $str = $_POST['select'];    // get data

    echo $str;
}
?>

如何獲得我的PHP文件的下拉列表和文本框值,以便我可以使用這些變量形成SQL查詢。

你需要使用一個&符號,就像它是一個GET一樣 此外,您應該對文本進行編碼 ,以確保它不包含任何可能具有特殊含義的字符

var the_data = ''
    + 'select=' + window.encodeURIComponent(sv)
    + '&text=' + window.encodeURIComponent(searchtext11);
//     ^                    ^^

您不需要手動解碼服務器端,因為您已經知道POST數據是x-www-form-urlencoded

在此字符串中添加&:

var  the_data = 'select='+sv+'&text='+searchtext11;

暫無
暫無

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

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