【问题标题】:I am trying to update records by php code. but having trouble in my code我正在尝试通过 php 代码更新记录。但我的代码有问题
【发布时间】:2014-06-16 10:40:29
【问题描述】:

我正在尝试通过 php 代码更新记录。但我的代码有问题。

代码在不使用函数 (get40(),show()) 的情况下运行,但我想使用按钮来调用这些函数。 代码如下:

这是主代码文件:

    <?php
$data;

    $count=0;
    $host='localhost';
    $uname='root';
    $pass="";
    $dbname="testing";
    $db=new mysqli($host,$uname,$pass,$dbname);
    $result;
    $query;


    if (mysqli_connect_errno()) {
    echo 'Error: Could not connect to database. Please try again later.';
    exit;
    }

    function get40($off='0', $rcd='2')
    {
        global $db,$result,$query;
        $query="SELECT sword, tword, reviewed from TempDictionary LIMIT $off,$rcd";
        $result = $db->query($query)or trigger_error($db->error);
    }

    function show()
    {
        global $db,$result,$query;
        echo "<form action='testSave.php' method='POST'>";
        echo "<table border=1 >";
        while($row = mysqli_fetch_array($result)) 
        {
            global $count;
            $count+=1;
            echo "<tr>";
            echo "<td><input type='text' name='s[]' value=" . $row['sword'] . "></td>";
            echo "<td><input type='text' name='t[]' value=" . $row['tword'] . "></td>";
            echo "<td><input type='text' name='r[]' size='1' value=" .$row['reviewed'] . "></td>";
            echo "</tr>";
        }
        echo "</table>";
        echo "<input type='text' name='no' size='2' value=" .$count. ">";
        echo "<input type='submit' value='Save'>";
        echo "</form>";
}
//get40(1,2);
//show();
mysqli_close($db);
?>
<script type="text/javascript"> 
function get()
{
 <?php 
    get40(0,3);
    show();
 ?>
 }
</script>

<form action="" method="POST">
<input type=button name=btnGet value=Get onclick="get()">
</form>

savetest.php 文件是:

    <?php

$no=$_POST['no'];
$i=0;
$s=$_POST['s']; 
$t=$_POST['t'];
$r=$_POST['r'];

    $host='localhost';
    $uname='root';
    $pass="";
    $dbname="testing";
    $db=new mysqli($host,$uname,$pass,$dbname);

    if (mysqli_connect_errno()) {
    echo 'Error: Could not connect to database. Please try again later.';
    exit;
    }

    // display
    foreach ($s as $key=>$value) 
    {
        print "$key = $value $t[$key] $r[$key]";
        echo '<br>';
    }

    // save to DB
    foreach ($s as $key=>$value) 
    {
    //  $query="UPDATE TempDictionary set sword=".$value.",tword=".$t[$key].",reviewed=".$r[$key]."
    //          WHERE sword=".$value;
        $query="UPDATE TempDictionary set sword='$value',tword='$t[$key]',reviewed='$r[$key]'
                WHERE sword='$value'";              

    $result = $db->query($query)or trigger_error($db->error);

    }

mysqli_close($db);  
?>

问题是当我点击按钮时它不起作用。

【问题讨论】:

  • 好像你在 Javascript 标签中嵌入了 HTML
  • 如果你想让一个JS函数调用一个PHP函数,你需要通过HTTP请求来实现。您不能在 JS 函数中嵌入 PHP 函数。

标签: javascript php html mysql


【解决方案1】:

AFAIK 您正在尝试使用 Javascript 代码运行 PHP 代码。 使用 Jquery/Ajax 来解决您的问题。您可以通过 Google 搜索或查看 stackoverflow。

第 1 步:了解单击按钮如何运行 PHP Run php function inside jQuery click

第 2 步:了解如何使用数据库中的数据并使用它填充表单: ajax call to populate form fields from database query when select value changes

这是解决问题的第一步。 (对不起,这不是复制/粘贴解决方案,只是指向正确方向的指针)

【讨论】:

  • 只是为这个答案添加一点(即 100% 正确):PHP 在服务器中执行,您正在创建的 javascript/HTML 响应被发送到客户端(网络浏览器),那里函数 get40() 不存在并且没有任何意义,因为 web 浏览器不执行 PHP 代码,只是输出所述代码的 text/html/javascript/css 结果。
猜你喜欢
  • 2021-04-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2019-10-26
  • 1970-01-01
  • 2022-01-16
相关资源
最近更新 更多