2015-02-07 86 views
-2

大家好我是ajax和JSON的新手,我按照这个指南做了一个jQuery滑块并从数据库中获得一些结果,但它现在正在工作,但现在我只能得到一个结果滑块范围,但我想从该范围内的所有结果,所以我需要从我的PHP传递更多然后一个结果变量,并不能似乎得到它的工作我已经包含下面Ajax JSON传递多个变量

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title></title> 

<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" /> 
<script src="http://code.jquery.com/jquery-1.8.2.js"></script> 
<script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script> 

<script src="slider.js"></script> 
<link rel="stylesheet" href="style.css" type="text/css"> 
</head> 

<body> 
<div> 
<span id="deal_min_price"></span> 
<span id="deal_max_price" style="float: right"></span> 
<br /><br /> 
<div id="slider_price"></div> 
<br /> 
<span id="number_results"></span> Abonnementer fundet 
</div> 
</body> 
</html> 

$(document).ready(function() 
{ 
$("#slider_price").slider({ 

      range: true, 

      min: 0, 
      max: 349, 

      step:1, 
      values: [ 0, 349 ], 


      slide: function(event, ui) { 
       $("#deal_min_price").text(ui.values[0] + "KR"); 
       $("#deal_max_price").text(ui.values[1] + "KR"); 
      }, 
      stop: function(event, ui) { 
       var dealsTotal = getDeals(ui.values[0], ui.values[1]); 
       $("#number_results").text(dealsTotal); 
      }, 
}); 
$("#deal_min_price").text($("#slider_price").slider("values", 0) + "KR"); 
$("#deal_max_price").text($("#slider_price").slider("values", 1) + "KR"); 
}); 
function getDeals(min_price, max_price) 
{ 

var numberOfDeals = 0; 


$.ajax(
{ 
    type: "POST", 
    url: 'deals.php', 
    dataType: 'json', 
    data: {'minprice': min_price, 'maxprice':max_price}, 
    async: false, 
    success: function(data) 
    { 
     numberOfDeals = data; 
    } 
}); 
return numberOfDeals; 
} 

PHP我的代码:

<?php 


$result = 0; 


define('MYSQL_HOST',  'db564596075.db.1and1.com'); 
define('MYSQL_USER',  'dbo564596075'); 
define('MYSQL_PASSWORD', '12345678'); 
define('MYSQL_DB',  'db564596075'); 


try 
    { 
    $dbh = new PDO('mysql:host='.MYSQL_HOST.';dbname='.MYSQL_DB, MYSQL_USER, MYSQL_PASSWORD); 

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $dbh->setAttribute(PDO::ATTR_PERSISTENT, true); 
    $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); 
    $dbh->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); 
} 

catch (PDOException $e) 
{ 
echo 'Fejk: ' . $e->getMessage() . '<br/>'; 
} 


if(isset($_POST['minprice']) && isset($_POST['maxprice'])) 
{ 

$minprice = filter_var($_POST['minprice'] , FILTER_VALIDATE_INT); 
$maxprice = filter_var($_POST['maxprice'] , FILTER_VALIDATE_INT); 
$query = ' 
     SELECT 
     * 
     FROM 
      mobilabonnement 
     WHERE 
      Prisprmdr 
     BETWEEN 
      :minprice 
     AND 
      :maxprice 
        '; 

$stmt = $dbh->prepare($query); 
try 
{ 
    $stmt->bindParam(':minprice', $minprice); 
    $stmt->bindParam(':maxprice', $maxprice); 
    $stmt->execute(); 
} 
catch (PDOException $e) 
{ 
    print($e->getMessage()); 
    die; 
} 

$row = $stmt->fetch(PDO::FETCH_ASSOC); 
$result = $row['Selskab']; 
} 
if ($result == true) 
{ 
echo json_encode($result); 
} 

else{ 
echo json_encode(0); 
} 


?> 
+0

那么,什么是您的实际问题呢? – 2015-02-07 17:38:00

+0

@ThomasKilian你现在从我的PHP中看到我得到Selskab,但我也想获得id等所有在滑块范围内的行 – Anoxy 2015-02-07 17:39:26

回答

-1

这就是为什么你只有Selskab - $result = $row['Selskab'];

试一下:

$row = $stmt->fetch(PDO::FETCH_ASSOC); 
$result = $row; 

if ($result) 
{ 
    echo json_encode($result); 
} 

else 
{ 
    echo json_encode(0); 
} 
-1

您需要循环所有的结果,或使用PDO::fetchAll,如果你想要的所有列,你也需要用整排不只是Selskab

​​

或使用PDO::fetchAll

$result = $stmt->fetchAll(PDO::FETCH_ASSOC); 

if (count($result) 
{ 
    echo json_encode($result); 
} else{ 
    echo json_encode(0); 
} 

Howeve [R也似乎你真的只想Selskabid,而不是所有的列,并在这种情况下,你应该调整你的查询,以及:

SELECT id, Selskab 
FROM mobilabonnement 
WHERE Prisprmdr BETWEEN :minprice AND :maxprice