php - 尝试使用基于按钮单击的php即时使用jquery附加一个html元素,但没有显示任何内容
问题描述
尝试使用基于按钮单击的 PHP 动态使用 jQuery 附加 html 元素,但没有显示任何内容。由于它是动态创建的,因此我使用计数器变量保留了动态 html 元素的 id 和 name 属性的值,以便以后在保存到数据库时可以将其彼此区分开来。
以下是代码
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<?php
if (isset($_POST['checkexistingopp']))
{
$sql = "select l.id as LinkId, o.id, concat(o.Opponenttype,' - ', o.OpponentName , ' - رقم المرجعي - ',o.Refnumber,' ',o.OpponentCaser) as Opponent ,l.case_id,l.opponent_id from wp_opponentcaselink l, wp_opponents o where o.id=l.opponent_id and l.case_id=".$_POST['case_id'];
//echo $sql;
if ($results = $wpdb->get_results( $sql))
{
$c=0;
$echomsg= "<script>
$(document).ready(function() { var str='';";
foreach ($results as $result){
$linkid=$result->LinkId;
$RefNumber=$result->refnumber;
$case_id=$result->case_id;
$opponent_id=$result->opponent_id;
$opponent=$result->Opponent;
$c=$c+1; //counter to differentiate names and ids of html elements
if (isset($opponent_id)) {
$echomsg.=" str=\"<br> <br><input type=\"hidden\" id=\"LinkId.$c.\" name=\"LinkId.$c.\" value=\"$linkid\" /> <p>Opponent No.$c.</p> <select id=\"opponent_id.$c.\" name=\"opponent_id.$c.\" class=\"form-control input sm select2\">.$OpponentOptions.
<option value=\"$opponent_id\" selected>$opponent</option>
</select>
$( \"#AppendForm\" ).append(str);";
}
}
$echomsg.= " });
</script>";
echo $echomsg;
//var_dump($echomsg);
}
}
?>
以下是表单html
<form role="form" method="post">
select case
<select id="case_id" name="case_id" class="form-control input sm select2" required>
<?php echo $options; ?>
</select>
<input type="submit" value="Check existing opponents" id="checkexistingopp" name="checkexistingopp" />
</form>
<form id="AppendForm" role="form" method="post" >
</form>
但是点击按钮什么都没有发生有人可以提出任何解决方案吗?感谢您提前回答
解决方案
为什么不直接让 PHP 渲染表单元素呢?这些似乎都不需要任何 JavaScript。在这种情况下,Javascript/jQuery 没有增加任何价值。
例如
$echomsg = "";
if ($results = $wpdb->get_results( $sql))
{
$c = 0;
foreach ($results as $result)
{
$linkid = $result->LinkId;
$RefNumber = $result->refnumber;
$case_id = $result->case_id;
$opponent_id = $result->opponent_id;
$opponent = $result->Opponent;
$c++; //counter to differentiate names and ids of html elements
if (isset(opponent_id)) {
$echomsg .= '<br><br>
<input type="hidden" id="LinkId'.$c.'" name="LinkId'.$c.'" value="'.$linkid.'" />
<p>Opponent No'.$c.'</p>
<select id="opponent_id'.$c.'" name="opponent_id'.$c.'" class="form-control input sm select2">'.$OpponentOptions.'
<option value="$opponent_id" selected>'.$opponent.'</option>
</select>';
}
}
//....
?>
<form id="AppendForm" role="form" method="post">
<?php echo $echomsg; ?>
</form>
注意我不知道$OpponentOptions
应该从哪里来?我想这是在您的脚本中较早的地方设置的。在没有其他信息的情况下,我会认为它是正确且有意义的。
推荐阅读
- terminal - 如何在 git 上推送我的分支并出现致命错误?
- flutter - 使用 SVG 路径剪切图像
- javascript - 这些http响应结束后我需要返回一个值,无法弄清楚
- amazon-web-services - 如何通过 cfn 模板中的策略控制访问?
- google-apps-script - 参数列表后的 SyntaxError: missing ) (ligne 8, fichier "AGENDA.gs")
- swift - SwiftUI View 也可以水平和垂直滚动,而不是仅垂直滚动
- android - 如何将 AAR 文件转换为 JAR
- javascript - 有没有办法欺骗 vuejs 中的路由器登陆页面的一部分?
- r - 使用 NNETAR 和 BRNN 的集成机器学习模型
- sql - 如何在 SQL 计数中包含某些条件