簡體   English   中英

jQuery 將變量發布到 PHP

[英]jQuery Post variable to PHP

控制台結果示例

嗨,我的 jQuery 有問題 我有一個文本框,我想在沒有提交按鈕的情況下從數據庫中進行實時搜索,當我運行 showcharges($_GET["id"], $sort, $search)已經是 select SQL 查詢。 ajax 的問題是,如果搜索某些內容以傳遞我在 php 變量(如 $search as _POST['search']; 在同一頁面上.. 在我的 function 的 $search 參數上傳遞該數據以及所有這些,而不會丟失我的特定客戶 ID 的查詢字符串,如果照片是 id=63 並且是我的 function $_GET 的第一個參數["id"] 所以我希望 ajax 保留我的 $_get["id"] 並將我搜索的單詞導出到 _post['search'] 變量。

我不能讓它工作..他們不承認_POST['search']作為一個 POST 所以$search; unedified

我的 PHP charge.php 調用了 function Data::showcharges($_GET["id"], $sort, $search);

  1. $_GET["id"]是上一頁的查詢字符串,在我的查詢中顯示特定的客戶 ID(工作)。
  2. $sort 正在對費用進行排序(僅當不是 null,內部函數時才啟用)
  3. $search 搜索查詢以查找費用,(僅當不是 null,內部函數時才啟用)

<?php
    
if (isset($_POST['sort']))
{
 $sort = $_POST['sort'];
}
    
      
 $search = $_POST['search'];
 echo  $search; 
  
?>
    
     
    

$showcharge = Data::showcharges($_GET["id"], $sort, $search);          
        
<input type="text" name="search"  class="txt" />
    <span id="show" name="mytext"></span>
        
   

另外,我對費用進行排序的排序表格(您可以在 function 中看到也想替換為 ajax 生活排序並避免提交按鈕的查詢,我不想我該怎么做

      <form action="" method="POST">
            <tr>
                <th> <select name="sort">
    
                        <option value="dateasc">Date Asc </option>
                        <option value="datedesc">Date Desc</option>
                        <option value="asc">Balance Asc </option>
                        <option value="desc">Balance Desc</option>
    
                    </select>
    
                    <button type="submit" name="submit" value="submit">Search</button>
                </th>
            </tr>
        </form>

我的腳本想要替換搜索框上的傳統提交按鈕並進行無按鈕的生活搜索

    <script>
        $(document).ready(function() {

            $('input.txt').keyup(function() {
                var search = $(this).val();
                var val = "<?php echo $_GET['id']; ?>";
                $.ajax({
                    url: "charge.php",
                    type: "POST",
                    dataType: 'text',
                    data: {
                        search: search,
                        val: val
                    },
                    success: function(response) {
                        $('#show').html(search);
                        console.log(search);
                        console.log(val);

                    }
                });
            });
        });
    </script>

我的 php function 可以正常工作。 來自dataprocess.php

    
public static function showcharges($id = null, $sort = null, $search = null)
{    
    $sql = "SELECT id,contact_date,tasks,taskcharges,payment,balance,payment_date,admin,customers_id,comments,created_at";
    
    $sql .= " ,(select (taskcharges-payment) from customers where charges.customers_id=customers.id) as balance";
    
    $sql .= " FROM charges ";
    if (!empty($id)) {
        $sql .= " WHERE customers_id=" . $id;
    }
    
    if (!empty($search)) {  
    
        $sql .= "  AND tasks LIKE '%" . $search . "%' OR comments LIKE  '%" . $search . "%'";
    }
    
    if ($sort == "asc") {   
            $sql .= "  ORDER BY balance ASC ";
        } elseif ($sort == "desc") {
    
        $sql .= " ORDER BY balance DESC ";
        } elseif ($sort == "dateasc") {    
        $sql .= " ORDER BY created_at ASC ";    
    } elseif ($sort == "datedesc") {
                $sql .= " ORDER BY created_at DESC ";
        }
        /* 
        echo $sql;
        die();  */
        $statement = conn()->prepare($sql);
        $statement->execute();
        $customers = $statement->fetchAll();
    
        return $customers;
}

試試這個方法

$.ajax({
   url: "charge.php",
   type: "POST",
   dataType: 'json'
   data: {
      query: search
   },
   success: function(response) {
   $('#show').html(response);
    
   }

});

當您通過 Jquery 發送 ajax 並想設置請求的方法時。 您應該使用“類型”並將數據設置為 JSON 之后您可以在 php 中使用$_POST

暫無
暫無

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

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