首页 > 解决方案 > 将数据发送到 php 以从数据库中重新运行数据

问题描述

我想获取具有特定名称的所有用户,并且此名称在 javascript 变量中,并且此代码不起作用我应该怎么做?

<table id="table">
        <tr>
        <td>id</td>
        <td>name</td>
        <td>info</td>
        </tr>
    </table>
<script>
        var table = document.getElementById("table");
$.ajax({ 
        type:"POST", 
        url:"process.php", 
        data:{name:"mike"}
        });
</script>
<?php include 'process.php'; ?>
<?php foreach ($users as $user) : ?>
<script>
var row = table.insertRow(1);
  var cell1 = row.insertCell(0);
  var cell2 = row.insertCell(1);
  var cell3 = row.insertCell(2);
  cell1.innerHTML="<?= $user->id ?>";
  cell2.innerHTML="<?= $user->name ?>";
  cell3.innerHTML="<?= $user->info ?>";
</script>
<?php endforeach; ?>

php

$name = $_POST["name"];
$database = [ 
    'host'   => 'localhost', 
    'dbname' => 'dbname', 
    'user'   => 'user', 
    'pass'   => '' 
];
try { 
    $db = new PDO("mysql:host={$database['host']};dbname={$database['dbname']}", $database['user'], $database['pass']); 
} catch (PDOException $e) { 
    die("An error happend, Error: " . $e->getMessage()); 
}
function getAllUsers(){
    global $db;
    $sql = "SELECT * FROM users WHERE $name = name";
    $stmt = $db->prepare($sql);
    $stmt->execute();
    return $stmt->fetchAll(PDO::FETCH_OBJ);
}
$users = getAllUsers();

错误是“第 2 行的 process.php 中未定义的数组键“名称””你能帮我将数据发送到我的 php 文件并获得基于此的查询吗

标签: javascriptphphtmljqueryajax

解决方案


我会实现你想要的......

html

<table id="table">
        <tr>
        <td>id</td>
        <td>name</td>
        <td>info</td>
        </tr>
    </table>
<div id="scriptsforTable"> </div>
<script>
        $.ajax({ 
    type:"POST", 
    url:"process.php", 
    data:{name:"mike"},
    success:function(data) {
        $("scriptsforTable").html(data); 
}
    });
</script>

进程.php

$name = $_POST["name"];
$database = [ 
    'host'   => 'localhost', 
    'dbname' => 'dbname', 
    'user'   => 'user', 
    'pass'   => '' 
];
try { 
    $db = new PDO("mysql:host={$database['host']};dbname={$database['dbname']}", $database['user'], $database['pass']); 
} catch (PDOException $e) { 
    die("An error happend, Error: " . $e->getMessage()); 
}
function getAllUsers(){
    global $db;
    $sql = "SELECT * FROM users WHERE $name = name";
    $stmt = $db->prepare($sql);
    $stmt->execute();
    return $stmt->fetchAll(PDO::FETCH_OBJ);
}
$users = getAllUsers();
echo '<script>var table = document.getElementById("table");</script>';
foreach ($users as $user) :
echo '<script>
var row = table.insertRow(1);
  var cell1 = row.insertCell(0);
  var cell2 = row.insertCell(1);
  var cell3 = row.insertCell(2);
  cell1.innerHTML='.$user->id.';
  cell2.innerHTML='.$user->name.';
  cell3.innerHTML='.$user->info.';
</script>';
endforeach; 

这可能有一些javascript错误,您可以轻松解决。


推荐阅读