2015-12-08 58 views
2

用戶後在PHP中的會話變量點擊這個javascript函數運行一個div:設置使用AJAX

$('.test').click(function(e) 
    { 
     e.preventDefault(); 
     $.ajax({ 
      url: 'ajax.php', 
      type: 'POST', 
      data: {"id": "<?php echo $rows['id']?>"}, 
      success:function(data){ 
       window.location.href = 'index.php'; 
      } 
     }); 
    }); 

我想與DIV用戶點擊進入我的ajax.php文件,其中關聯的ID通過此代碼運行:

<?php 
    session_start(); 
    //connect to db here 
    $_SESSION['id'] = $_POST['id']; 
?> 

但是,這是行不通的。爲進一步擴大我所做的傳遞得到rows['id']變量運行該SQL代碼:

$sql_select = "SELECT id FROM ids WHERE id = '$id'"; 
$results_select = $conn->query($sql_select); 

我再輸出用的ID與其對應的一堆的div:

<?php 
    while ($select_rows = mysqli_fetch_array($results_select)) 
    { 
     echo "<div class = 'test'></div>"; 
    } 
?> 

有誰知道我可以做到這一點?

回答

4

使用數據屬性:

嘗試:

<?php 
    while ($select_rows = mysqli_fetch_array($results_select)) 
    { 
     echo "<div data-id='".$rows['id']."' class = 'test'></div>"; 
    } 
?> 

JS:

$('.test').click(function(e) 
    { 
     e.preventDefault(); 
     $.ajax({ 
      url: 'ajax.php', 
      type: 'POST', 
      data: {"id": $(this).attr('data-id')},//fetch the data attribute 
      success:function(data){ 
       window.location.href = 'index.php'; 
      } 
     }); 
    }); 
+0

不幸的是仍然收到此錯誤:'錯誤:您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'id']附近使用正確的語法'''' – ogk

+0

在我的代碼中我沒有任何'<?php echo $ rows ['id']?> '複製我的代碼exacly – madalinivascu

+0

我編輯了上面的代碼,我找到了錯誤發生的地方,它在我的WHERE語句中:'WHERE id ='$ id'「;'從我的理解中,語法 – ogk

0

請檢查您的JS代碼data: {"id": "<?php echo $rows['id']?>"}。此行可能無法傳遞您的實際值,因此請將其存儲到divid屬性中,並通過jQuery獲取並傳遞它。

JS:

$('.test').click(function(e) 
{ 
    dataValue = $(this).attr('id');//Get user clicked div id attribute value... 
    e.preventDefault(); 
    $.ajax({ 
     url: 'ajax.php', 
     type: 'POST', 
     data: {"id": dataValue}, 
     success:function(data){ 
      window.location.href = 'index.php'; 
     } 
    }); 
}); 

PHP:

通過上面的JS代碼,你需要爲PHP代碼,以及一些變化:

while ($select_rows = mysqli_fetch_array($results_select)) 
{ 
    echo "<div class = 'test' id='". $select_rows['id'] ."'></div>"; 
} 

請確認驗證碼通過print_r($_POST);AJAX後手ler頁面。這將打印POST請求的數據AJAX代碼。

讓我知道是否有任何關於此事。