如何通过$.ajax post发布javascript变量和html表单?
我分别使用Ajax向php文件和html表单发布了两个javascript变量。我想将这两个javascript变量与发布的表单值一起使用,但我不确定如何实现这一点如何通过$.ajax post发布javascript变量和html表单?,javascript,php,jquery,ajax,post,Javascript,Php,Jquery,Ajax,Post,我分别使用Ajax向php文件和html表单发布了两个javascript变量。我想将这两个javascript变量与发布的表单值一起使用,但我不确定如何实现这一点 $(文档).ready(函数(){ var aucid=“”; var userid=“”; $.ajax({ url:“jqueryhp/HighestBid.php”, 方法:“张贴”, 数据:{'auctionid':aucid,'userid':userid}, 成功:功能(结果){ $('#price').html(结
$(文档).ready(函数(){
var aucid=“”;
var userid=“”;
$.ajax({
url:“jqueryhp/HighestBid.php”,
方法:“张贴”,
数据:{'auctionid':aucid,'userid':userid},
成功:功能(结果){
$('#price').html(结果);
}
});
$('form').bind('submit',函数(事件){
event.preventDefault();//使用此页面停止刷新
$.ajax({
键入:“POST”,
url:'jqueryhp/HighestBid.php',
数据:$('form')。序列化(),
成功:函数(){
警报(“表格已提交”);
}
});
});
});
设置两个隐藏输入以保存aucid
和userid
,如下所示:
<form>
<input type="number" min="<?php echo $startingprice ?>" step="any" style="width: 10em;" size="35" name="newbid" id="newbid" tabindex="1" class="form-control" placeholder="New Bid €" value="" required>
<input type="submit" name="submit" id="submit" tabindex="2" class="form-control btn btn-login" style="width: 14em" value="submit">
<input name='aucid' style="display:none"/>
<input name='userid' style="display:none"/>
</form>
<script>
$(document).ready(function() {
$("input[name='aucid']").val("<?php echo $auctionID; ?>");
$("input[name='userid']").val("<?php echo $userID; ?>");
.......................
});
</script>
设置两个隐藏输入以保存aucid
和userid
,如下所示:
<form>
<input type="number" min="<?php echo $startingprice ?>" step="any" style="width: 10em;" size="35" name="newbid" id="newbid" tabindex="1" class="form-control" placeholder="New Bid €" value="" required>
<input type="submit" name="submit" id="submit" tabindex="2" class="form-control btn btn-login" style="width: 14em" value="submit">
<input name='aucid' style="display:none"/>
<input name='userid' style="display:none"/>
</form>
<script>
$(document).ready(function() {
$("input[name='aucid']").val("<?php echo $auctionID; ?>");
$("input[name='userid']").val("<?php echo $userID; ?>");
.......................
});
</script>
您可以像在ajax调用中那样使用序列化来附加数据
data: $("#form_id").serialize() + '&xyz=' + xyz
您可以像在ajax调用中那样使用序列化来附加数据
data: $("#form_id").serialize() + '&xyz=' + xyz
假设正确解析了变量,则可以使用:
$\u POST['JavaScript\u variable\u name\u goes\u here'代码>
或
$\u GET['JavaScript\u variable\u name\u goes\u here'代码>
以PHP格式检索变量,具体取决于AJAX方法
AJAX函数的一个直接示例是:
<?php $auctionId=$_POST['auctionid']; ?>
如果您需要详细说明,或者遇到任何其他问题,请告诉我。如果您正确解析了变量,您可以使用:
$\u POST['JavaScript\u variable\u name\u goes\u here'代码>
或
$\u GET['JavaScript\u variable\u name\u goes\u here'代码>
以PHP格式检索变量,具体取决于AJAX方法
AJAX函数的一个直接示例是:
<?php $auctionId=$_POST['auctionid']; ?>
如果您需要详细说明,或者遇到任何其他问题,请告诉我。将表单发送到php脚本。当用户登录时,从DB中检索他的ID并将其放入会话中,如下所示
switch(isset($_POST['login'])):
case 'Register':
$email = htmlspecialchars(trim($_POST['em']), ENT_QUOTES, 'UTF-8');
$password = htmlspecialchars(trim($_POST['pw']), ENT_QUOTES, 'UTF-8');
// check if the combination fname/lname/email is already used
include('./Models/log_check.php');
unset($_SESSION['ID'],$_SESSION['role']);
$_SESSION['ID'] = $row['ID'];
$_SESSION['role'] = $row['role'];
因此,您可以在模型/查询中使用ID:
<?php
/* Jointure sama RDV des vets */
$query =
"SELECT
appointment.start,
appointment.app_day,
patients.pet_name,
patients.breed,
patients.ID,
clients.last_name,
clients.first_name,
appointment.type,
appointment.canceled
FROM appointment
JOIN patients
JOIN clients
WHERE clients.users_ID = patients.owner_ID
AND patients.ID = appointment.patients_ID
AND appointment.vets_ID = (SELECT ID FROM vets WHERE users_ID = :ID)
AND appointment.canceled = 'n'
AND WEEK(appointment.app_day) = WEEK(:date)
ORDER BY appointment.app_day,appointment.start";
$query_params = array(':ID' => $_SESSION['ID'],
':date' => $date);
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}catch(PDOException $ex){
die("Failed to run query: " . $ex->getMessage());
}
?>
将表单发送到php脚本。当用户登录时,从DB中检索他的ID并将其放入会话中,如下所示
switch(isset($_POST['login'])):
case 'Register':
$email = htmlspecialchars(trim($_POST['em']), ENT_QUOTES, 'UTF-8');
$password = htmlspecialchars(trim($_POST['pw']), ENT_QUOTES, 'UTF-8');
// check if the combination fname/lname/email is already used
include('./Models/log_check.php');
unset($_SESSION['ID'],$_SESSION['role']);
$_SESSION['ID'] = $row['ID'];
$_SESSION['role'] = $row['role'];
因此,您可以在模型/查询中使用ID:
<?php
/* Jointure sama RDV des vets */
$query =
"SELECT
appointment.start,
appointment.app_day,
patients.pet_name,
patients.breed,
patients.ID,
clients.last_name,
clients.first_name,
appointment.type,
appointment.canceled
FROM appointment
JOIN patients
JOIN clients
WHERE clients.users_ID = patients.owner_ID
AND patients.ID = appointment.patients_ID
AND appointment.vets_ID = (SELECT ID FROM vets WHERE users_ID = :ID)
AND appointment.canceled = 'n'
AND WEEK(appointment.app_day) = WEEK(:date)
ORDER BY appointment.app_day,appointment.start";
$query_params = array(':ID' => $_SESSION['ID'],
':date' => $date);
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}catch(PDOException $ex){
die("Failed to run query: " . $ex->getMessage());
}
?>
您可以在表单Serialize
中附加aucid
和userid
值。为什么需要这样做?在我看来,userid
已经存储在会话中,aucid
由访问的url确定。使用用户提供的值只会让客户操纵您的拍卖。我也解决了这个问题@jeroen,但有些人根本不关心它似乎…@mannix会看到更新的答案。您可以在表单Serialize
中附加aucid
和userid
值。为什么需要这样做?在我看来,userid
已经存储在会话中,aucid
由访问的url确定。使用用户提供的值只会使您的拍卖被客户操纵。我也解决了这个问题@jeroen,但有些人并不关心它似乎…@mannix会看到更新的答案。我通常不建议使用隐藏字段,因为它可以在客户端编辑。这两个变量应该在服务器端处理,即设置为php会话变量。否则,“做你不该做的事”就太容易了。@Martin我想写得像他一样,witchvar aucid=“”代码>也将被看到。是的,但最好指出使用它的危险,并阻止使用它,因为它确实会产生安全风险。我通常不建议使用隐藏字段,因为它可以在客户端进行编辑。这两个变量应该在服务器端处理,即设置为php会话变量。否则,“做你不该做的事”就太容易了。@Martin我想写得像他一样,witchvar aucid=“”代码>也将被看到。是的,但是最好指出使用它的危险,并阻止使用它,因为它确实会产生安全风险。会话不能在AJAX中使用。它不在同一边,所以您不能执行ajax请求并获得idhower,我会使用完整的php并像这样使用$\u会话。检查我的answer@Dice这就是我这篇文章的全部观点。我做OP想要做的事情,并解释为什么这是一种不好的做法,他实际上应该使用在每个页面上获取的会话变量,而不使用AJAX。我从来没有说过他应该通过AJAX解析他的会话变量,因为这实际上与我在回答中提出的观点相矛盾…………会话不能在AJAX中使用。它不在同一边,所以您不能执行ajax请求并获得idhower,我会使用完整的php并像这样使用$\u会话。检查我的answer@Dice这就是我这篇文章的全部观点。我做OP想要做的事情,并解释为什么这是一种不好的做法,他实际上应该使用在每个页面上获取的会话变量,而不使用AJAX。我从来没有说过他应该通过AJAX解析他的会话变量,因为这实际上与我在回答中提出的观点相矛盾。。。。。。。。。。。。。。。。。。。。。