正在尝试设置 mailto:link
Trying to set up mailto: link
我有一个网页,其中包含用于插入供应商数据的表单,一旦插入,公司名称就会被放入 select 框中。当公司被 selected 时,调用 table 并包含所有供应商信息。
我的问题是
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();
}
}
});
})
});
通过使用 jQuery 的 .html() 方法,您可以像这样插入 html:
$( '#vendor_email' ).html( '<a href="mailto:' + vendorData.vendorEmail + '">' + vendorData.vendorEmail + '</a>' );
顺便说一句,我不禁注意到您在 venderEmail
中将 vendor 拼写为 "vender"。
这绝对有可能!您只需要使用 .html()
instead of .text()
.
请注意 mailto
出现在 href
属性上,这是 <a>
标签所独有的。因此,您需要将 <a href=""></a>
放在 <td id="vendor_email"></td>
:
中
$("#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. You should use prepared statements, and also ensure that your database user only has the required privileges SQL injection. You should use prepared statements, and also ensure that your database user only has the required privileges
]
您可以参考this post了解更多关于如何在PHP中防止SQL注入的信息:)
希望对您有所帮助!
我有一个网页,其中包含用于插入供应商数据的表单,一旦插入,公司名称就会被放入 select 框中。当公司被 selected 时,调用 table 并包含所有供应商信息。
我的问题是 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();
}
}
});
})
});
通过使用 jQuery 的 .html() 方法,您可以像这样插入 html:
$( '#vendor_email' ).html( '<a href="mailto:' + vendorData.vendorEmail + '">' + vendorData.vendorEmail + '</a>' );
顺便说一句,我不禁注意到您在 venderEmail
中将 vendor 拼写为 "vender"。
这绝对有可能!您只需要使用 .html()
instead of .text()
.
请注意 mailto
出现在 href
属性上,这是 <a>
标签所独有的。因此,您需要将 <a href=""></a>
放在 <td id="vendor_email"></td>
:
$("#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. You should use prepared statements, and also ensure that your database user only has the required privileges SQL injection. You should use prepared statements, and also ensure that your database user only has the required privileges
]您可以参考this post了解更多关于如何在PHP中防止SQL注入的信息:)
希望对您有所帮助!