gpt4 book ai didi

php - 在同一页面上传递查询 AJAX

转载 作者:行者123 更新时间:2023-11-29 00:36:19 45 4
gpt4 key购买 nike

我对使用 AJAX 还很陌生,但遇到了困难。你能帮我解决这个问题吗?我实际上有一个下拉菜单,当我在该下拉菜单中选择一个项目时,查询表应该打印到 tbody。这是我的代码:

PHP代码:

<select id="proj_id" name="proj_id" onchange="myFunction(this.value)">

<option value="none">---select project---</option>
<?php
//Projects
$r = @mysql_query("SELECT `proj_id`, `proj_name` FROM `projects`");

while($rows = mysql_fetch_assoc($r)) {
$proj_id = $rows['proj_id'];
$proj_name = $rows['proj_name'];
echo '<option value='.$proj_id.'>'.$proj_name.'</option>';
}
?>
</select>

<table>

<thead>
<tr>
<th>Project Name</th>
<th>Material Name</th>
<th>Quantity</th>
<th>Status</th>
</tr>
</thead>
<tbody id="project_estmat">
<?php
//Display Requests
$r = @mysql_query("SELECT `proj_name`, `mat_name`, `req_qty`, `stat_desc` FROM `requests` JOIN `projects` USING(`proj_id`) JOIN `materials` USING(`mat_id`) JOIN `status` ON(requests.stat_id = status.stat_id)");

while ($row = mysql_fetch_array($r)) {
echo '<tr>';
echo '<td>'.$row['proj_name'].'</td>';
echo '<td>'.$row['mat_name'].'</td>';
echo '<td>'.$row['req_qty'].'</td>';
echo '<td>'.$row['stat_desc'].'</td>';
echo '</tr>';
}
?>
</tbody>
</table>

jS 代码:

function myFunction(value){

if(value!="none")
{
$.ajax(
{
type: "POST",
url: 'content/admin/requests.php',
data: { proj_id: value},
success: function(data) {
$('#project_estmat').html(data);

}
});
}
else
{
$('#project_estmat').html("select an item");
}

}

我有这个 PHP 代码,它应该在 #project_estmat 中,这是一个表。我认为这就是问题所在。因为每次我选择一个项目时,表中都没有打印任何内容。它显示空数据。

<?php
if (isset($_POST['proj_id'])) {

$r = @mysql_query("SELECT `proj_name`, `mat_name`, `req_qty`, `stat_desc` FROM `requests` JOIN `projects` USING(`proj_id`) JOIN `materials` USING(`mat_id`) JOIN `status` ON(requests.stat_id = status.stat_id)");
if($r){
while ($row = mysql_fetch_array($r)) {
echo '<tr>';
echo '<td>'.$row['proj_name'].'</td>';
echo '<td>'.$row['mat_name'].'</td>';
echo '<td>'.$row['req_qty'].'</td>';
echo '<td>'.$row['stat_desc'].'</td>';
echo '</tr>';
}
}
exit;
}
?>

最佳答案

你已经用 ${ 包装了 $.ajax 函数它应该像下面这样,并尝试使用 change ,并在执行此操作时删除内联函数调用,

$('#proj_id').change(function() {
var value = $(this).val();
if(value!="none"){
$.ajax({
type: "POST",
url: 'content/admin/requests.php',
data: { proj_id: value},
success: function(data) {
$('#project_estmat').html(data);
alert(data);//check whats coming from the server side
}
});
}
});

在服务器端使用简化的 php 代码进行测试,如下所示,

<?php 
if (isset($_POST['proj_id'])) {
echo '<tr>';
echo '<td>A</td>';
echo '<td>B</td>';
echo '<td>C</td>';
echo '<td>D</td>';
echo '</tr>';

}
?>

关于php - 在同一页面上传递查询 AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14120684/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com