Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过$.ajax post发布javascript变量和html表单?_Javascript_Php_Jquery_Ajax_Post - Fatal编程技术网

如何通过$.ajax post发布javascript变量和html表单?

如何通过$.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(结

我分别使用Ajax向php文件和html表单发布了两个javascript变量。我想将这两个javascript变量与发布的表单值一起使用,但我不确定如何实现这一点


$(文档).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我想写得像他一样,witch
var aucid=“”也将被看到。是的,但最好指出使用它的危险,并阻止使用它,因为它确实会产生安全风险。我通常不建议使用隐藏字段,因为它可以在客户端进行编辑。这两个变量应该在服务器端处理,即设置为php会话变量。否则,“做你不该做的事”就太容易了。@Martin我想写得像他一样,witch
var aucid=“”也将被看到。是的,但是最好指出使用它的危险,并阻止使用它,因为它确实会产生安全风险。会话不能在AJAX中使用。它不在同一边,所以您不能执行ajax请求并获得idhower,我会使用完整的php并像这样使用$\u会话。检查我的answer@Dice这就是我这篇文章的全部观点。我做OP想要做的事情,并解释为什么这是一种不好的做法,他实际上应该使用在每个页面上获取的会话变量,而不使用AJAX。我从来没有说过他应该通过AJAX解析他的会话变量,因为这实际上与我在回答中提出的观点相矛盾…………会话不能在AJAX中使用。它不在同一边,所以您不能执行ajax请求并获得idhower,我会使用完整的php并像这样使用$\u会话。检查我的answer@Dice这就是我这篇文章的全部观点。我做OP想要做的事情,并解释为什么这是一种不好的做法,他实际上应该使用在每个页面上获取的会话变量,而不使用AJAX。我从来没有说过他应该通过AJAX解析他的会话变量,因为这实际上与我在回答中提出的观点相矛盾。。。。。。。。。。。。。。。。。。。。。