【问题标题】:acquire parameters in a php page which is called by a ajax function在 ajax 函数调用的 php 页面中获取参数
【发布时间】:2012-08-26 07:23:24
【问题描述】:

我正在使用 jquery 和 ajax 调用 php 页面 res.php。代码是:-

$('#submit_button').click(function () {        
    buildingVal = $("#building");
    levelVal = $("#level");
    data = 'building=' + buildingVal.val() + 'level=' + levelVal.val();
    $.ajax( {

        url: "res.php", 
        type: "POST",
        data: data,     
        success: function (data) {
            $('#npc').html(data);
        }
    });​
});

res.php 页面代码是:-

<?php
//connect to the database
$con = mysql_connect("localhost","root","12345") or die("error ".mysql_error());

//connect to the travian table
mysql_select_db("trav",$con) or die("error ".mysql_error());

$building = mysql_real_escape_string($_GET['building']);
$level = mysql_real_escape_string($_GET['level']);


$query = "select * from ";
$query = $query . $building;
$query = $query . "where lvl=" . $level;
$query = $query . ";";
$result = mysql_query($query) or die('Error in Child Table!');

$data = mysql_fetch_assoc($result);

echo '<table><tr><td>Lumber=$data["lumber"]</td><td>Clay=$data["clay"]</td><td>Iron=$data["iron"]</td><td>Crop=$data["crop"]</td>';

?>

我收到错误消息

Notice: Undefined index: building in C:\xampp\htdocs\debal\res.php on line 8

Notice: Undefined index: level in C:\xampp\htdocs\debal\res.php on line 9
Error in Child Table!

我如何提取发送到页面的两个参数并在 sql 查询中使用它们从数据库中的表中检索数据。 请你帮帮我..

【问题讨论】:

  • 在您的 ajax 函数中尝试:data: {building: buildingVal.val(), level: levelVal.val()}, 或至少将您正在使用的查询字符串与与号分开。并且您将 post 与 get 混淆了。
  • 如果你在发帖,格式应该是这样的 data = {building: buildingVal.val() + level: levelVal.val();}
  • @AshirvadSingh - 对象和字符串都可以作为数据有效,而前者通常更具可读性。
  • 你为什么不提交一个在其字段中包含这些值的表单(它们可以隐藏)?

标签: php jquery ajax parameter-passing


【解决方案1】:

问题是您正在通过 AJAX 发送 $_POST 值并尝试在 res.php 页面上从 $_GET 分配变量。将 AJAX 函数更改为 type: "GET",或

$building = mysql_real_escape_string($_POST['building']);
$level = mysql_real_escape_string($_POST['level']);

关于 res.php

你也没有正确发送'level'变量,你错过了一个'&'

data = 'building=' + buildingVal.val() + '&level=' + levelVal.val();

【讨论】:

  • 我将代码更改为 $_POST 错误的第一部分似乎已解决,但第二部分仍然存在。 Notice: Undefined index: level in C:\xampp\htdocs\debal\res.php on line 9 Error in Child Table! 好像没有检索到第二个参数。我如何检索这两个参数。
  • 在 'level' 之前添加 '&',如下所示:data = 'building=' + buildingVal.val() + '&level=' + levelVal.val();
  • 我不确定您遇到什么错误,但尝试将“where”行更改为: $query = $query 。 " 哪里 lvl=" 。 $级别;我认为您在“位置”之前缺少一个空格字符
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
  • 2018-06-03
相关资源
最近更新 更多