【问题标题】:Calling a PHP function in a dynamically created HTML table在动态创建的 HTML 表中调用 PHP 函数
【发布时间】:2014-09-13 16:35:03
【问题描述】:

我有一个从 mySQL 表填充的 HTML 表,如下所示:

$sql = "SELECT `ID`,`SaveName`, `CourseNumber`, `FormType`, `POSTString`, `DateModified` FROM `SavedFormsTable` WHERE 1";
$result = mysqli_query($con,$sql);

echo "<table border='1'>
<tr>
<th>Save File Name</th>
<th>Course Number</th>
<th>Date Modified</th>
<th>Load Old Form</th>
</tr>";

while($row = mysqli_fetch_array($result)) {
  echo "<tr>";
  echo "<td>" . $row['SaveName'] . "</td>";
  echo "<td>" . $row['CourseNumber'] . "</td>";
  echo "<td>" . $row['DateModified'] . "</td>";
  echo '<td><button type="button" onclick="LoadFormJS('.$row['ID'].');">Load Form!</button>';
  echo "</tr>";
}    
echo "</table>";

我的问题在底部的第 4 行。在 HTML 中&lt;button&gt;

我正在尝试创建一个按钮在 HTML 表中,单击该按钮将调用 PHP 函数。但我必须回显 HTML 才能从 mySQL 数据库创建表。

有没有聪明的方法来做到这一点???

我需要调用的PHP函数:

function LoadFormPHP($ID){

$con=mysqli_connect("","User636626","EasyPassword","pansyc5_SavedForms");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = sprintf("SELECT `POSTString` FROM `SavedFormsTable` WHERE `ID`=%d",$ID);
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_array($result);
//mysql_close($con);
$_POST = unserialize(base64_decode($row["POSTString"]));

}

我尝试(但失败)从以下位置调用 PHP 函数的 JS 函数:

<script>
         function LoadFormJS(ID){
        alert(ID);
        <?php LoadFormPHP(ID) ?>
         }
      </script>

【问题讨论】:

  • 不幸的是,在页面加载后,您无法调用 PHP 函数。您是否考虑过使用 AJAX 来实现此功能? developer.mozilla.org/en-US/docs/AJAX/Getting_Started
  • 需要用到ajax,能否贴出需要调用的php函数的代码?
  • 如前所述,您无法在页面加载后调用 PHP。我建议看看 Ajax,尤其是 Jquery ajax 函数,因为在我看来,它们是迄今为止最容易使用的。
  • 我添加了我使用 javascript 函数调用 PHP 函数的失败尝试...

标签: javascript php html mysql html-table


【解决方案1】:

您不能将 html(客户端)和 php(服务器端)混合在一起。对于这种情况,AJAX 是一个很好的工具。 onclick 可以包含对 javascript 函数的请求,该函数将请求返回到您的服务器,并返回所需的 HTML。

【讨论】:

    【解决方案2】:

    你只是有一些语法问题 -

    echo '<td><button type="button" onclick="LoadForm(' .$row['ID'] .')">Load Form!</button>';
    

    调用 PHP 函数的方法是用一个表单包围您的按钮,该表单使用隐藏输入来保存 $row['ID'] 的值。单击按钮将在此时加载正确的表单,您可以放弃内联 JS 以支持表单操作。

    【讨论】:

      猜你喜欢
      • 2011-05-20
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多