AJAX PHP数据库查询不工作数据库查询、工作、AJAX、PHP

2023-09-10 21:50:45 作者:欢渡

我试图学习AJAX,但它是不会这么好。在我的网站可以根据用户要求的培训。一旦提交请求时的导师应该能够管理从这个页面的请求。然而试图以索赔的请求时,AJAX的不正常,没有任何错误。

的内部HTML不改变 在该数据库条目不会更改 我知道PHP文件正在运行,因为我有previously收到错误

PHP / HTML /使用Javascript / AJAX

 <表类=侧边栏的风格=宽度:50%;>
    < TR>百分位>我打开请求< /第i;< / TR>
    < D​​IV ID =myopen>
    < PHP
        如果(!空($ myopen)){
            的foreach(myopen $为$要求){
                $日期=日期(F DŸ - 嘎',$要求['提交']);
                回声'< TR>< TD>'。$要求['VID']'。 - '。$要求['型'。 - '。$要求['意见'。 - '。$日期。'< / TD>< / TR>';
            }
        }
        其他{
            回声'< TR>< TD>无< / TD>< / TR>';
        }
    ?>
    < / DIV>
< /表>

<表类=侧边栏的风格=宽度:50%;>
    < TR>百分位>我关闭请求和LT; /第i;< / TR>
    < PHP
        如果(!空($ myclosed)){
            的foreach($ myclosed为$要求){
                $日期=日期(F DŸ - 嘎',$要求['提交']);
                回声'< TR>< TD>'。$要求['VID']'。 - '。$要求['型'。 - '。$要求['意见'。 - '。$日期。'< / TD>< / TR>';
            }
        }
        其他{
            回声'< TR>< TD>无< / TD>< / TR>';
        }
    ?>
< /表>

<表类=侧边栏的风格=宽度:50%;>
    < TR><第i个无人认领的请求和LT; /第i;< / TR>
    < D​​IV ID =无人认领>
    < PHP
        如果(!空($无人认领)){
            的foreach($无人认领为$要求){
                $日期=日期(F DŸ - 嘎',$要求['提交']);
                的$ id = $请求['身份证'];
                $ NAME ='$这 - >登记处>的getData('名字')。 这 -  $>登记处>的getData('姓')。';
                回声'< TR>< TD>'。$要求['VID']'。 - '。$要求['型'。 - '。$要求['意见'。 - '。$日期。 < A HREF =的onclick =索赔&GT(,'$名字。''的$ id。');权利要求1所述; / A>< / TD>< / TR>';

            }
        }
        其他{
            回声'< TR>< TD> NONE:)< / TD>< / TR>';
        }
    ?>
    < / DIV>
< /表>
<表类=侧边栏的风格=宽度:50%;>
    < TR><第i个请求日志< /第i;< / TR>
    < PHP
        如果(!空($声称)){
            的foreach($声称为$要求){
                回声'< TR>< TD>'的print_r($要求)'< / TD>< / TR>。
            }
        }
        其他{
            回声'< TR>< TD>无< / TD>< / TR>';
        }
    ?>
< /表>
<脚本>
    功能声称(ID,姓名){
        VAR XMLHTTP =新XMLHtt prequest();
        xmlhttp.onreadystatechange =功能(){
            如果(xmlhttp.readyState == 4和&安培; xmlhttp.status == 200){
                的document.getElementById(myopen)的innerHTML = xmlhttp.responseText。
            }
        };
        xmlhttp.open(POST,/lib/AJAX/trainingRequestManage.php,真正的);
        xmlhttp.setRequestHeader(内容型,应用程序/ x-WWW的形式urlen codeD);
        xmlhttp.send(ID =+编号+&放大器;名称=+姓名);
    }
< / SCRIPT>
 

trainingRequestManage.php

 < PHP
的$ id = $ _ POST [ID];
的$ id = $ _ POST [名称];

包括('http://www.ivaoxa.org/config/db.php');

$ SQL =更新trainingRequests SET教练='$名字。WHERE ID =$ ID。

// prepare声明
$语句= $ DB-> prepare($ SQL);

//执行查询
$ stmt->执行();

回声测试;
 

db.php中

 < PHP
$ DB =新PDO('mysql的:主机=本地主机,数据库名= XX;字符集= UTF8','XX','XX');
$ DB->的setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION);
$ DB->的setAttribute(PDO :: ATTR_EMULATE_ prePARES,假);
 
php数据库,查询 删除 替换SQL语句

解决方案

除非 http://www.ivaoxa.org/config/db.php 供应作为纯文本文件中的以下行是永远不会工作:

 包括('http://www.ivaoxa.org/config/db.php');
 

更多信息: http://php.net/manual/en/function.include .PHP

I am attempting to learn AJAX, but it is not going so well. On my site users can request training. Once the request is submitted instructors should be able to manage the request from this page. However when trying to "claim" a request, the AJAX does not function correctly, with no errors.

The inner html does not change The database entry is not changed I know the php file is being run as I had previously received errors

PHP/HTML/Javascript/AJAX

<table class="sidebar" style="width:50%;">
    <tr><th>My Open Requests</th></tr>
    <div id="myopen">
    <?php
        if(!empty($myopen)){
            foreach($myopen as $request){
                $date = date('F d Y - gA', $request['submitted']);
                echo '<tr><td>'.$request['vid'].' - '.$request['type'].' - '.$request['comments'].' - '.$date.'</td></tr>';
            }
        }
        else{
            echo '<tr><td>NONE</td></tr>';
        }
    ?>
    </div>
</table>

<table class="sidebar" style="width:50%;">
    <tr><th>My Closed Requests</th></tr>
    <?php
        if(!empty($myclosed)){
            foreach($myclosed as $request){
                $date = date('F d Y - gA', $request['submitted']);
                echo '<tr><td>'.$request['vid'].' - '.$request['type'].' - '.$request['comments'].' - '.$date.'</td></tr>';
            }
        }
        else{
            echo '<tr><td>NONE</td></tr>';
        }
    ?>
</table>

<table class="sidebar" style="width:50%;">
    <tr><th>Unclaimed Requests</th></tr>
    <div id="unclaimed">
    <?php
        if(!empty($unclaimed)){
            foreach($unclaimed as $request){
                $date = date('F d Y - gA', $request['submitted']);
                $id = $request['id'];
                $name = "'".$this->registry->getData('firstname').' '.$this->registry->getData('lastname')."'";
                echo '<tr><td>'.$request['vid'].' - '.$request['type'].' - '.$request['comments'].' - '.$date.' <a href="" onclick="claim('.$id.','.$name.')">Claim</a></td></tr>';

            }
        }
        else{
            echo '<tr><td>NONE :)</td></tr>';
        }
    ?>
    </div>
</table>
<table class="sidebar" style="width:50%;">
    <tr><th>Request Log</th></tr>
    <?php
        if(!empty($claimed)){
            foreach($claimed as $request){
                echo '<tr><td>'.print_r($request).'</td></tr>';
            }
        }
        else{
            echo '<tr><td>NONE</td></tr>';
        }
    ?>
</table>
<script>
    function claim(id, name){
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("myopen").innerHTML = xmlhttp.responseText;
            }
        };
        xmlhttp.open("POST", "/lib/AJAX/trainingRequestManage.php", true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.send("id="+id+"&name="+name);
    }
</script>

trainingRequestManage.php

<?php
$id = $_POST["id"];
$id = $_POST["name"];

include('http://www.ivaoxa.org/config/db.php');

$sql = "UPDATE trainingRequests SET trainer='".$name."' WHERE id=".$id;

// Prepare statement
$stmt = $db->prepare($sql);

// execute the query
$stmt->execute();

echo 'test';

db.php

<?php
$db = new PDO('mysql:host=localhost;dbname=xx;charset=utf8', 'xx', 'xx');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

解决方案

Unless http://www.ivaoxa.org/config/db.php is served as a plain file the following line is never going to work:

include('http://www.ivaoxa.org/config/db.php');

More info: http://php.net/manual/en/function.include.php