簡體   English   中英

使用ajax將php變量傳遞給另一個php文件

[英]Passing a php variable to another php file using ajax

我有一些div類,它們的content-full類,它們是根據MySQL表中存儲的數據創建的。 例如,如果我有3行,將有3 div s。

當我點擊任何的div當時的與ID為相關的數據div應該內顯示div content-full 然而,隨着最后相關內容div出現時,我對任何的點擊divs ,因為我沒有通過任何一種可用於指定點擊變量IDdiv

 <script type="text/javascript">

  $(document).ready(function() {

    $(".content-short").click(function() {                //

      $.ajax({   
        type: "GET",
        url: "content.php",               //
        dataType: "text",                  
        success: function(response){                    
            $(".content-full").html(response); 
        }

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

content.php

 <?php
     include "mysql.php";
     $query= "SELECT Content FROM blog limit 1";
     $result=mysql_query($query,$db);
     while($row=mysql_fetch_array($result))
       {
           echo $row['Content'];          
       }
     mysql_close($db);  

    ?> 

是否有其他方法可以執行此操作,或者我需要對其進行更正才能使其正常工作?

謝謝

您可以查看將參數傳遞給腳本的過程,通常就像一個ID,您可以通過該參數在數據庫中進行搜索。

最簡單的方法是在url上獲取參數url: "content.php?param=2",

然后在php中: <?php $param = $_GET['param']; ... <?php $param = $_GET['param']; ...

首先,您必須將實際數據傳遞給您的PHP腳本。 讓我們首先處理JavaScript的結束。 我將假設您的HTML代碼是使用php打印的,並且您可以創建如下內容: <div class=".content-short" data-id="2" />

$(".content-short").click(function() {
  // get the ID
    var id = $(this).attr('data-id');
    $.ajax({   
        type: "post",
        url: "content.php",
        data: 'id=' + id
        dataType: "text",                  
        success: function(response){                    
            $(".content-full").html(response); 
        }
    });
});

下一步是讀取您使用腳本傳遞的值:

<?php
include "mysql.php";
// Use the $_POST variable to get all your passed variables.
$id     = isset($_POST["id"]) ? $_POST["id"] : 0;
// I am using intval to force the value to a number to prevent injection.
// You should **really** consider using PDO.
$id     = intval($id);
$query  = "SELECT Content FROM blog WHERE id = " . $id . " limit 1";
$result = mysql_query($query, $db);
while($row=mysql_fetch_array($result)){
    echo $row['Content'];          
}
mysql_close($db);
?>

到這里,我已經修改了您的查詢以允許按ID提取。 有兩個主要警告:

首先: 您不應該再使用mysql_函數,它們已被棄用,如果尚未發生,將很快將其從PHP中刪除! ,其次:我不能保證查詢能夠正常工作,當然,我不知道您的數據庫結構是什么。

最后一個問題是:結果為空時該怎么辦? 好吧,通常AJAX調用使用JSON對象發送和響應,因此最好這樣做,替換以下行:

 echo $row['Content'];

有了這個:

 echo json_encode(array('success' => $row['Content']));

現在,在JS的success函數中,您應該嘗試檢查是否有成功消息。 首先,將dataType更改為json或完全刪除該行。 現在替換此成功函數:

success: function(response){                    
    $(".content-full").html(response); 
}

到這個:

success: function(response){
    if(response.success) $(".content-full").html(response);
    else alert('No results');
}

這里是mysql_函數的棄用“注意”: http ://php.net/manual/en/changelog.mysql.php

暫無
暫無

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

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