【问题标题】:PHP PDO - Pass dynamic string array to JavaScriptPHP PDO - 将动态字符串数组传递给 JavaScript
【发布时间】:2017-11-09 08:41:13
【问题描述】:

我了解到问题在于我试图将字符串数组传递给 JavaScript。

我不知道该怎么做。

表格

<input type="hidden" name="id">
<input type="hidden" name="adProd">

数据库连接

$stmt = $conn->prepare("SELECT product_name, product_quantity, product_id FROM product ");
$stmt->execute();

// set the resulting array to associative
$result = $stmt->fetchAll(PDO::FETCH_OBJ);

foreach ($result as $v) {
  echo "<td style='width:150px;border:1px solid black;'>";
  echo "</td>";
  echo '<tr>';
  echo '<td>' .$v->product_name. "</td>";
  echo '<td>' .$v->product_quantity. "</td>";
  echo '<td>' .$v->product_id.  "</td>";

product_id 下面的工作完全正常。

  echo '<td> <button type="submit" onclick="askForSell('.$v->product_id.')">  Sell  </button>  </td>';

另一方面,product_name 不起作用。

  echo '<td> <button type="submit" onclick="askForBuy('.$v->product_name.')">   Buy   </button> </td>';

JavaScript

form=document.getElementById("sellAndBuy");

工作正常:

function askForSell(id) {  
    form.action="sellProducts.php";
    form['id'].value = id;
    form.submit();
}

不起作用:

function askForBuy(adProd) {
    form.action="buyProducts.php";
    form['adProd'].value = adProd;
    form.submit();
}

【问题讨论】:

    标签: javascript php string forms pdo


    【解决方案1】:

    由于产品名称是一个字符串,因此您需要在 HTML 中为该名称加上额外的引号。您需要转义这些,因为您已经需要同时使用单引号和双引号:

    echo '<td> <button type="submit" onclick="askForBuy(\''.$v->product_name.'\')">   Buy   </button> </td>';
    

    注意添加的\'

    由于这些转义引号在更复杂的情况下可能会变得很麻烦,而且因为它是更好的做法,因此您应该考虑使用纯 JavaScript 代码绑定事件处理程序,而不是使用 onclick HTML 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-26
      • 2015-04-20
      • 2016-11-14
      • 2016-04-08
      • 2016-06-01
      • 1970-01-01
      • 2013-03-28
      相关资源
      最近更新 更多