【问题标题】:Trying to set up mailto: link尝试设置 mailto: 链接
【发布时间】:2018-01-30 02:55:28
【问题描述】:

我有一个网页,其中包含用于插入供应商数据的表单,一旦插入公司名称就会被放入选择框中。选择公司时,将调用所有供应商信息。

我的问题是 vendor_email 是从 php 脚本调用的,有没有办法将 id 的值插入到 mailto: 函数中。

 <tbody id="records">
    <td id="vendor_company"></td>
    <td id="vendor_rep"></td>
    <td id="vendor_email"></td>
</tbody>
<div class="row" id="no_records"><div class="col-sm-4">Plese select vendor name to view details</div></div>

这是我的 php 和 js 代码

<?php
include_once("Database/db_connect.php");
if($_REQUEST['empid']) {
$sql = "SELECT id, companyName, repName, venderEmail FROM vender_contact 
WHERE id='".$_REQUEST['empid']."'";
$resultset = mysqli_query($conn, $sql) or die("database error:". 
mysqli_error($conn));
$data = array();
while( $rows = mysqli_fetch_assoc($resultset) ) {
$data = $rows;
}
echo json_encode($data);
} else {
echo 0;
  }
 ?>

我的js代码

 $(document).ready(function(){
 // code to get all records from table via select box
 $("#vendors_data").change(function() {
 var id = $(this).find(":selected").val();
 var dataString = 'empid='+ id;

 $.ajax({
url:"getVendor.php",
dataType: "json",
data: dataString,
cache: false,
success: function(vendorData) {
if(vendorData) {
$("#heading").show();
$("#no_records").hide();
$("#vendor_company").text(vendorData.companyName);
$("#vendor_rep").text(vendorData.repName);
$("#vendor_email").text(vendorData.venderEmail);
$("#records").show();
} else {
$("#heading").hide();
$("#records").hide();
$("#no_records").show();
}
}
});
})
});

【问题讨论】:

    标签: javascript php html-email


    【解决方案1】:

    绝对有可能!您只需要使用 .html() 而不是 .text()

    注意mailto 出现在href 属性上,这是&lt;a&gt; 标记所独有的。因此,您需要将您的 &lt;a href=""&gt;&lt;/a&gt; 放在您的 &lt;td id="vendor_email"&gt;&lt;/td&gt; 内:

    $("#vendor_email").html("<a href='mailto:" + vendorData.vendorEmail + "'>" + vendorData.vendorEmail + "</a>");
    

    这将呈现为:

    vendorData = {};
    vendorData.vendorEmail = 'test@test.com';
    
    $("#vendor_email").html("<a href='mailto:" + vendorData.vendorEmail + "'>" + vendorData.vendorEmail + "</a>");
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <div id="vendor_email"></div>

    除此之外,请注意您的 MySQLi 对SQL injection易受攻击的。您应该使用prepared statements,并确保您的数据库用户只有required privileges,以防止这种情况发生。

    您可以参考this post 了解更多关于如何在 PHP 中防止 SQL 注入的信息:)

    希望这会有所帮助!

    【讨论】:

    • 工作完美谢谢,正是我需要的
    【解决方案2】:

    通过使用 jQuery 的 .html() 方法,您可以像这样插入 html:

    $( '#vendor_email' ).html( '&lt;a href="mailto:' + vendorData.vendorEmail + '"&gt;' + vendorData.vendorEmail + '&lt;/a&gt;' );

    顺便说一句,我不禁注意到您在 venderEmail 中将 vendor 拼写为“vender”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-04
      • 2010-10-11
      • 2012-05-31
      • 2013-10-17
      • 2017-01-12
      • 2023-03-19
      • 2012-10-25
      • 2011-06-10
      相关资源
      最近更新 更多