从PHP脚本发送数组

时间:2015-05-01 08:58:22

标签: php mysql sql arrays ajax

以下是我从Javascript发送到PHP脚本的值:

$('.verdi_knapp').click(function() {
$(this).siblings().removeClass("aktiv_verdi"); // ta vekk aktiv på de andre alternativene
$(this).addClass("aktiv_verdi"); // sett denne til aktiv

var min_id = $(this).attr('id').split("_")[1]; 
var aktuelle_verdier = []

$('.aktiv_verdi').each(function() {
  aktuelle_verdier.push($(this).attr('id').split("_")[1]);
})
console.log("disse verdiene skal vi spørre etter", aktuelle_verdier)

      $.ajax({
        url: "oyvind_liste.php", 
        data: {aktuelle_verdier}, 
        dataType: "json",
        success: function(result){
          console.log(result);
     }});

这是一个PHP脚本,它从SQL数据库中查询一组值,并在javascript中将它们打印到控制台:

$ids = $_GET['aktuelle_verdier'];
$value = implode(", ", $ids);

$antall = count($_GET);

$sql = "SELECT `art_id` 
        FROM `art_has_verdi` 
        WHERE `verdi_id` IN (".$value.") 
        GROUP BY `art_id` HAVING COUNT(*)=".$antall.";";

$result = mysqli_query($conn, $sql);

$arter_igjen = array();

while($row = mysqli_fetch_array($result)){
array_push($arter_igjen, $row['art_id']);
}
echo json_encode($arter_igjen);

我接下来想要找到的是如何发送这个数组:$ arter_igjen,它包含一组ID,到另一个页面,我可以在数据库中运行查询包含这些ID的所有数据并打印它们在列表中。

3 个答案:

答案 0 :(得分:2)

 $.ajax({
    url: "oyvind_liste.php", 
    data: {aktuelle_verdier: aktuelle_verdier}, 
    dataType: "json",
    success: function(result){
      console.log(result);
 }});

请在ajax调用中检查数据Paramter。你忘了在JSON中传递密钥。

答案 1 :(得分:0)

如果我理解你,你喜欢在ajax返回后克隆窗口,在新的一个窗口中你将进行一些新的搜索,但是在当前的一个将生成一个日志。在我理解你的情况下,那么为什么不尝试使用返回的数据生成表单,并将其发布到_blank窗口。

$.ajax({
    url: "oyvind_liste.php", 
    data: {aktuelle_verdier}, 
    dataType: "json",
    success: function(result){

      // Here you have to generate the form on fly
      // Include hidden fields, containing your result data
      // and finally send form with action some new.php on blank_ target

      console.log(result);
 }});

答案 2 :(得分:0)

如果其他页面包含此类代码(不在类或函数中),则可以包含它(include_once" ..."),但不建议您只是保持这样的脚本。

相反,封装您的代码(将其放在函数和类中)。这将允许您自由插入脚本(include_once" ...")并调用这些函数或创建可以工作的类。

另外,请尽量避免太多 http请求。如果不需要id列表,请在php脚本中完成所有工作并返回所需的结果。

您的代码存在一些问题。如果您刚开始使用PHP,我建议您阅读:

  1. PDO: Creating a connection

  2. PDO with prepared statements (prevents SQL injections)

  3. 用户定义的功能(我没有足够的声誉来放置链接。搜索:" w3schools php 5功能")