【发布时间】:2016-05-20 21:02:25
【问题描述】:
当我单击添加按钮时,我正在使用下面的代码在 html 中添加一个添加按钮,以便向页面添加一个新的文本框和单选按钮。添加的文本框的名称是输入名称加上添加的数字(点击次数),以便在我想将输入数据用于不同的查询时将其区分为不同的变量。我将此输入(输入为数字)与单选按钮一起使用,以确定是否应该根据选中的单选按钮查询高于或低于指定数字的某个数据。
<input id="btnAdd" type="button" value="Add" />
<br />
<div id="TextBoxContainer">
</div>
<br />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
var click_number = 0;
$("#btnAdd").bind("click", function () {
var input = $("<label>input <textarea rows='1' name='input_"+ click_number +"'><?php echo $_POST['input_"+ click_number +"']; ?></textarea></label> ");
var above_below = $("<input type='radio' name='abovebelow_"+ click_number +"' id='above_"+ click_number +"' value='Above' <?php if(isset($_POST['abovebelow_"+ click_number +"']) && $_POST['abovebelow_"+ click_number +"'] == 'Above') echo \"checked='checked'\"; ?>><label for='above_"+ click_number +"'>Above</label><input type='radio' name='abovebelow_"+ click_number +"' id='below_"+ click_number +"' value='Below' <?php if(isset($_POST['abovebelow_"+ click_number +"']) && $_POST['abovebelow_"+ click_number +"'] == 'Below') echo \"checked='checked'\"; ?>><label for='below_"+ click_number +"'>Below</label><br/> ");
hgcBio.appendTo('#TextBoxContainer');
above_below.appendTo('#TextBoxContainer');
click_number++;
});
</script>
目前,在 jQuery 中不使用 html 时,它可以工作,但是在这种 jQuery 格式中,单选按钮不起作用。我已将错误范围缩小到上面/下面变量中的 php 代码:
<?php if(isset($_POST['abovebelow_"+ click_number +"']) && $_POST['abovebelow_"+ click_number +"'] == 'Above') echo \"checked='checked'\"; ?>
因为当我删除这部分时,我不再收到错误消息。错误消息是“Parse error: parse error, expecting `"identifier (T_STRING)"'” 在该行。由于我在 jQuery 的其他部分(输入变量)中使用了 php,我猜问题是 if 语句?还有另一种方法可以在这里使用 if 语句吗?或者可能有其他方法来做到这一点?
【问题讨论】:
-
if 语句中的某些字符串似乎格式不正确。 click_number 应该是一个 php 变量吗?为什么 echo 后的第一个字符是反斜杠?
-
不是 jQuery 变量。反斜杠是为了转义引号。我也可以在那里使用单引号,但这更多是出于可见性原因。
-
如果您想使用来自 PHP 的数据填充 Javascript,请查看 jquery 的
$.ajax()方法以及 PHP 端的json_encode()。我不特别推荐这种方式,因为它可能会在以后导致很多问题。 -
你不能用
+连接字符串和变量在PHP中登录。使用点.而不是加号