将Ajax数据传递到PHP数组开关案例中以处理SQL数据


Passing Ajax Data Into a PHP Array Switch Case To Process SQL Data

我有5个HTML输入字段,每个字段都必须相应地显示自己的车道重量。我不确定这里需要如何使用Ajax,但我需要能够向PHP发送每个车道名称,并将这些值返回到HTML中各自的输入字段。所有文件都是分开的。到目前为止,我有它的工作,如果我硬编码PHP变量"lane_name",但我需要它通过通道名称根据输入字段需要它循环。例如

<input name="Lead-1" /> 

需要调用开关箱"Lead-1"并显示DB中的权重值,等等……因此,我将需要多个语句在我的Ajax以及显示正确的信息,因为我现在只有铅-1输入字段显示信息。

HTML

<body onload="getLaneWeight();">
<form id="Warehouse_Worksheet" name="Warehouse_Worksheet">
<table align="center">
    <tbody>
        <tr>
            <th>
                Lane Types
            </th>
            <th>
                Total Weight
            </th>
        </tr>
        <tr>
            <td>
                Lead 1
            </td>
            <td>
                <input type="text" name="Lead-1" readonly="readonly" />
            </td>
        </tr>
        <tr>
            <td>
                Lead 2
            </td>
            <td>
                <input type="text" name="Lead-2" readonly="readonly" />
            </td>
        </tr>
        <tr>
            <td>
                Poly 1
            </td>
            <td>
                <input type="text" name="Poly-1" readonly="readonly" />
            </td>
        </tr>
        <tr>
            <td>
                Poly 2
            </td>
            <td>
                <input type="text" name="Poly-2" readonly="readonly" />
            </td>
        </tr>
        <tr>
            <td>
                Poly 3
            </td>
            <td>
                <input type="text" name="Poly-3" readonly="readonly" />
            </td>
        </tr>
    </tbody>
    </table>
</form>
</body>

JS

function getLaneWeight() {
$.ajax({
    type: 'GET',
    url: './php/getLaneWeight.php',
    data: 'Lead-1',
    success: function (mydata) {
        document.forms['Warehouse_Worksheet'].elements['Lead-1'].value = mydata;
    },
    error: function () {
    },
    complete: function () {
    }
});
};
PHP

$lane_name = array("Lead-1","Lead-2","Poly-1","Poly-2","Poly-3");
switch ($lane_name[0])
{
case "Lead-1":
  $sql="SELECT SUM(weight)
        FROM bundle_lanes
        WHERE lane_name = 'Lead-1'";
  break;
case "Lead-2":
  $sql="SELECT SUM(weight)
        FROM bundle_lanes
        WHERE lane_name = 'Lead-2'";
  break;
case "Poly-1":
  $sql="SELECT SUM(weight)
        FROM bundle_lanes
        WHERE lane_name = 'Poly-1'";
  break;
case "Poly-2":
  $sql="SELECT SUM(weight)
        FROM bundle_lanes
        WHERE lane_name = 'Poly-2'";
  break;
case "Poly-3":
  $sql="SELECT SUM(weight)
        FROM bundle_lanes
        WHERE lane_name = 'Poly-3'";
  break;
}
$result = mysql_query($sql) or die ('Error'.mysql_error());
while ($data = mysql_fetch_row($result)) {
    $weight = $data[0];
    echo $weight;
}

实际上,我想我刚刚找到了一种替代方法来处理这个问题,它正在工作。我只是在PHP文件中返回一个数组然后从AJax调用每个数组值:

AJAX/JS

//Populate Lane Type Weight Table - JFLAY
function getLaneWeight() {
$.ajax({
    url: './php/getLaneWeight.php',
    dataType:'json',
    success: function (weight) {
        document.forms['Warehouse_Worksheet'].elements['Lead-1'].value = weight[0]['SUM(weight)'];
        document.forms['Warehouse_Worksheet'].elements['Lead-2'].value = weight[1]['SUM(weight)'];
        document.forms['Warehouse_Worksheet'].elements['Poly-1'].value = weight[2]['SUM(weight)'];
        document.forms['Warehouse_Worksheet'].elements['Poly-2'].value = weight[3]['SUM(weight)'];
        document.forms['Warehouse_Worksheet'].elements['Poly-3'].value = weight[4]['SUM(weight)'];
    },
    error: function () {
    }
});
};
PHP

$lane_name = array("Lead-1","Lead-2","Poly-1","Poly-2","Poly-3");
//Define JSON array
$array = array();
foreach ($lane_name as $value) {
    $sql="SELECT SUM(weight)
        FROM bundle_lanes
        WHERE lane_name = '$value'";
    $result = mysql_query($sql) or die ('Error'.mysql_error());
    while ($data = mysql_fetch_array($result)) {
        $array[] = $data;
    }
}
print json_encode($array);