将变量从javascript传递给php get语句

Passing variable from javascript to php get statement

本文关键字:php get 语句 变量 javascript      更新时间:2023-09-26

我在以前的线程中寻找过这个,所以如果已经回答,请道歉。我的javascript如下,其中data参数是一个字符串,它引用MySQL数据库中的表:

    getData("UKnatgas");
function getData(data){
$.getJSON("service.php?action="+data, function(json) {              
    $.each(json.UKnatgas,function() {
       var info = this.UKnatgas;                    
                $('#UKnatgas').append( info );
    });
});
}

首先,我想将字符串"UKnatgas"传递到子$.each函数中,以便它显示为:

$.each(json.data,function() {
       var info = this.data;                    
                $('#data').append( info );
    });

但这行不通?你能告诉我为什么吗?

第二部分是删除 php 文件中所有 "UKnatgas" 的实例:

  if($_GET){
if($_GET['action'] == 'UKnatgas'){
    $query = "SELECT UKnatgas FROM UKnatgas order by Date DESC Limit 1 ";
    $result = db_connection($query);
    $UKnatgas = array();
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        array_push($UKnatgas, array('UKnatgas' => $row['UKnatgas']));
    }
    echo json_encode(array("UKnatgas" => $UKnatgas));
    exit;
    }
}

总而言之,我想用一个字符串初始化函数getData(data),该字符串被传播到javascript函数中,然后传播到php文件中。这可能吗?

谢谢!

PHP 很容易,尽管我允许对错误进行某种类型的检查,甚至可能在放置用户可编辑字符串时检查黑客尝试。这可能会允许MySQL Injection所以要小心。

如果可以,请尽可能使用mysql_real_escape_string。有关更多信息,请参阅链接:http://www.php.net/manual/en/function.mysql-real-escape-string.php

if($_GET['action']){
    $query = "SELECT `".$_GET['action']."` FROM `".$_GET['action']."` order by Date DESC Limit 1 ";
    $result = db_connection($query);
    $actionArray = array();
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        array_push($actionArray, array($_GET['action'] => $row[$_GET['action']]));
    }
    echo json_encode(array($_GET['action'] => $actionArray));
    exit;
}

不确定确切,但这应该适用于 JSON

$.each(json, function(key, val) {
    $('#'+data).append( val );
});

http://api.jquery.com/jQuery.getJSON/

我在您的情况下对其进行了测试,您需要执行以下操作才能访问数据。现在这是使用 JSON 作为关联数组,它不是,但不是 100% 否则如何做到这一点。

function getData(data) { 
    $.getJSON("service.php?action="+data, function(json) { 
        $.each(json[data], function() { 
            var info = this[data];
            $('#'+data).append( info ); 
        }); 
    });
}