这是一般情况: 我需要插入一些课程详细信息,其中一些数据是相同的(课程标题,价格等...)和其他具体的每个日期(年,月和日,单个类的详细信息... ) 所以我写了第一页,用户插入课程周期的公共数据,然后提交并发送到第二页,在那里可以指定约会的数量。 有了这个数字,我写了一个While循环,根据需要生成尽可能多的行。 在同一时间,我生成一个idform变量来标识具有不同名称的所有表单。 在提交按钮中,我想将$ idform发送到javascript函数(将是一个Ajax脚本)。 通常你会写:
<input type="button" value=" REGISTRA " style="display:block" onClick="javascript:formami('$idform');">
使用容器的双引号和内容的单引号。 但重点是我在一个while循环中,我用echo生成td,如下所示:
echo "<input type='button' value=' REGISTRA ' style='display:block' onClick='javascript:formami($idform);'>";
所以我不能使用$ idform的单引号。 如果我使用单引号,那么变量根本就不会传递,如果我不使用引号而不是变量我有[object HTMLFormElement]消息。 顺便说一句,现在文档头部的功能仅包含用于测试目的的警报:
function formami(numeroriga) {
var pippo = numeroriga;
alert("Ciao "+pippo);
}
单击提交按钮时获得的结果是一个带有“Ciao [object HTMLFormElement]”的警报,当我期待消息“Ciao riga1”,“Ciao riga2”等时,取决于我是哪个按钮点击。
有关此问题的可能解决方案的任何想法?可能是我要改变整个logìc?
提前感谢所有建议
答案 0 :(得分:1)
只要您在字符串中转义它们,就可以使用双引号和单引号:
echo "<input type=\"button\" value=\" REGISTRA \" style=\"display:block\" onClick=\"javascript:formami('$idform');\">";
答案 1 :(得分:1)
你可以用这个:
<input type="button" value="REGISTRA" style="display:block" onClick="javascript:formami('<?php echo $idform;?>');">
然后你可以查看源代码以检查“formami('idform应该在这里打印')是否从php echo
获得正确的值答案 2 :(得分:1)
您应该尝试使用alternative syntax for control structures,这样可以更轻松地转义,并且您的代码更具可读性:
<table>
<?php foreach ($idforms as $idform): ?>
<tr>
<td><?php echo $idform ?></td>
<td><input type="button" value="REGISTRA" onClick="javascript:formami('<?php echo $idform ?>');"></td>
</tr>
<?php endforeach ?>
</table>
答案 3 :(得分:0)
尝试
echo "<input type='button' value=' REGISTRA ' style='display:block' onClick='javascript:formami('".$idform."');'>";