将PHP变量传递给JavaScript函数

将PHP变量传递给JavaScript函数,javascript,php,twitter-bootstrap,Javascript,Php,Twitter Bootstrap,我试图将一些PHP变量传递给JavaScript函数,然后JavaScript函数在引导模式中更新元素。当前五个被传递时,它工作得很好,但是当我试图传递第六个时,它就好像JavaScript函数完全无法运行一样 奇怪的是,工作版本和非工作版本之间的唯一区别是添加了额外的参数。我不明白为什么添加那个参数会导致它失败。非常感谢您的帮助 工作PHP: echo '<td><a data-toggle="modal" href="#myModal" onclick="updateMod

我试图将一些PHP变量传递给JavaScript函数,然后JavaScript函数在引导模式中更新元素。当前五个被传递时,它工作得很好,但是当我试图传递第六个时,它就好像JavaScript函数完全无法运行一样

奇怪的是,工作版本和非工作版本之间的唯一区别是添加了额外的参数。我不明白为什么添加那个参数会导致它失败。非常感谢您的帮助

工作PHP:

echo '<td><a data-toggle="modal" href="#myModal" onclick="updateModal('.$order_id.','.$order_placed.','.$order_payout.','.$order_due.','.$order_pages.')" class="btn btn-primary btn-lg">View</a></td>';
echo '<td><a data-toggle="modal" href="#myModal" onclick="updateModal('.$order_id.','.$order_placed.','.$order_payout.','.$order_due.','.$order_pages.','.$order_level.')" class="btn btn-primary btn-lg">View</a></td>';
echo';
非工作PHP:

echo '<td><a data-toggle="modal" href="#myModal" onclick="updateModal('.$order_id.','.$order_placed.','.$order_payout.','.$order_due.','.$order_pages.')" class="btn btn-primary btn-lg">View</a></td>';
echo '<td><a data-toggle="modal" href="#myModal" onclick="updateModal('.$order_id.','.$order_placed.','.$order_payout.','.$order_due.','.$order_pages.','.$order_level.')" class="btn btn-primary btn-lg">View</a></td>';
echo';
JavaScript

<script type="text/javascript">
function updateModal(the_id, date_placed, payout, due_date, req_pages, o_level,
subject, spacing, sources, format, c_name, c_email, c_phone){

 $("#order_num").text(the_id);
$("#order_placed").text(date_placed);
$("#order_payout").text("$" + payout);
$("#order_due").text(due_date);
$("#order_pages").text(req_pages);
$("#order_level").text(o_level);
$("#order_subject").text(subject);
$("#order_spacing").text(spacing);
$("#order_sources").text(sources);
$("#order_format").text(format);
$("#customer_name").text(c_name);
$("#customer_email").text(c_email);
$("#customer_phone").text(c_phone);

}
</script>

函数updateModal(id、放置日期、付款、到期日期、请求页面、o级别、,
主题、间距、来源、格式、c_姓名、c_电子邮件、c_电话){
$(“#订单数量”)。文本(订单id);
$(“下单”)。文本(下单日期);
$(“$”订单支付”)。文本(“$”+支付);
$(“订单到期”)。文本(到期日);
$(“订单页面”)。文本(要求页面);
$(“订单级别”)。文本(订单级别);
$(“订单主题”)。文本(主题);
$(“#顺序#间距”)。文本(间距);
$(“订单来源”)。文本(来源);
$(“订单格式”)。文本(格式);
$(“客户名称”)。文本(客户名称);
$(“#客户#电子邮件”)。文本(c#电子邮件);
$(“客户电话”).text(客户电话);
}
模式代码

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
  <div class="modal-content">
    <div class="modal-header">
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
      <h3 class="modal-title">Order <span class="color" id="order_num">x</span></h3>
      <p><small><strong>Order Placed:</strong><span id="order_placed">n/a</span></small></p>
    </div>
    <div class="modal-body">
      <h3>You Recieve: <span class="color" id="order_payout">n/a</span></h3>
      <h4>Due Date: <span class="color" id="order_due">n/a</span></h4>
      <h4>Pages Required: <span class="color" id="order_pages">n/a</span></h4>  
      <hr>
      <p><strong>Academic Level: </strong><span id="order_level">n/a</span></p>
      <p><strong>Subject: </strong><span id="order_subject">n/a</span></p>
      <p><strong>Spacing: </strong><span id="order_spacing">n/a</span></p>
      <p><strong>Sources: </strong><span id="order_sources">n/a</span></p>
      <p><strong>Format: </strong><span id="order_format">n/a</span></p>
      <hr>
      <h3>Customer Details</h3>
      <p><strong>Customer Name: </strong><span id="customer_name">n/a</span></p>
      <p><strong>Customer Email: </strong><span id="customer_email">n/a</span></p>
      <p><strong>Customer Phone Number: </strong><span id="customer_phone">n/a</span></p>
      <hr>
      <h3>Additional Info</h3>


    </div>
    <div class="modal-footer">
      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
    </div>
  </div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->

&时代;
订单x
下订单:不适用

你收到:不适用 截止日期:不适用 所需页数:不适用
学术水平:不适用

主题:不适用

间距:不适用

来源:不适用

格式:不适用


客户详细信息 客户名称:不适用

客户电子邮件:不适用

客户电话号码:不适用


附加信息 接近

我强烈建议将变量作为JSON对象传递:

$parameters = array(
    'id' => $order_id,
    'placed' => $order_placed,
    'payout' => $order_payout,
    'due' => $order_due,
    'pages' => $order_pages,
    'level' => $order_level,
    // and so on
);

echo '<td><a data-toggle="modal" href="#myModal" onclick="updateModal('.json_encode($parameters).')" class="btn btn-primary btn-lg">View</a></td>';
$parameters=数组(
'id'=>$order\u id,
“已下订单”=>$order\u已下订单,
“支出”=>$order\u支出,
“到期日”=>$order\u到期日,
“页面”=>$order\u页面,
“级别”=>$order\U级别,
//等等
);
回声';
然后在JS中:

<script type="text/javascript">
function updateModal(parameters) {
    $("#order_num").text(parameters.id);
    $("#order_placed").text(parameters.placed);
    $("#order_payout").text("$" + parameters.payout);
    $("#order_due").text(parameters.due);
    $("#order_pages").text(parameters.pages);
    $("#order_level").text(parameters.level);
    $("#order_subject").text(parameters.subject);
    $("#order_spacing").text(parameters.spacing);
    $("#order_sources").text(parameters.sources);
    $("#order_format").text(parameters.format);
    $("#customer_name").text(parameters.c_name);
    $("#customer_email").text(parameters.c_email);
    $("#customer_phone").text(parameters.c_phone);
}
</script>

函数updateModel(参数){
$(“#order_num”).text(parameters.id);
$(“#下单”).text(parameters.placed);
$(“#订单支付”).text(“$”+参数.payout);
$(“#订单到期”).text(parameters.due);
$(“#订单页面”).text(parameters.pages);
$(“#订单级别”).text(parameters.level);
$(“订单主题”).text(parameters.subject);
$(“#顺序间距”).text(参数.间距);
$(“#order_sources”).text(parameters.sources);
$(“#订单格式”).text(parameters.format);
$(“#客户名称”).text(parameters.c#u name);
$(“#客户电子邮件”).text(parameters.c#u电子邮件);
$(“#客户#电话”).text(parameters.c#电话);
}

$order\u level的值是多少?如果回送字符串被双引号而不是单引号包围,则无需中断字符串来插入变量。(很酷吧?
echo“警报(这个$variable工作'$fine');”我在一个测试数据库中有三个条目,这将填充PHP代码响应到的表。在每种情况下,$order_level的值都是“本科”您的javascript没有检查所有变量是否正确使用,您可以使用默认参数,例如<代码>o_级别=o_级别的类型!='未定义的'?o_级别:“默认值”我刚刚尝试实现了这个,有$order_level和没有$order_level作为数组的一部分。这在两种情况下都不起作用,应该起作用。你能提供更多的细节吗?你能粘贴PHP呈现的HTML吗?当我实现你发布的代码时,模态显示正确,但每个span标记中的值都是“n/a”。这也是我在原始问题中提到的添加$order_level时发生的情况。我在php变量之后定义了数组,这些变量在一个while循环中定义,该循环使用它们将数据库中的每一行输出到表中。也许这与此有关?在您的示例中,
span
的html已经是“n/a”,所以我猜,
updateModel
函数没有启动。是的,这很奇怪。当我尝试在“正在工作的php”中传递5个变量时,它会启动并正常工作,当我再添加一个变量时(除了$order\u level之外,还尝试了其他变量),或者当我尝试您的方法时。。。没有什么。