如何设置变量

问题描述 投票:1回答:4

在我的数据库中,我创建了一个名为“coursePlaces”的表,其中我有7列和多行。

加载php文件course.php我连接到数据库并从表“coursePlaces”中选择数据,用它来回显多个具有不同id和值的按钮:

<?php
    /* CONNECTION TO DB */
    
    require 'includes/dbh.inc.php';
    /*  ACCESS COURSE AND GRADE VAR FROM URL WITH GET */
    $course = $_GET['course'];
    $grade = $_GET['grade'];

    /* SELECTS DATA FROM TABLE AND ECHOES BUTTONS WITH DIFFERENT ID AND VALUE DEPENDING ON TABLE CONTENT */
    $sql = "SELECT * FROM coursePlaces WHERE grade='$grade' AND course='$course'";
    $result = mysqli_query($con, $sql);
        while ($row = mysqli_fetch_array($result)) {
            echo '<input type="submit" id="place-' . $row['placeName'] . '" value="' . $row['placeName'] . '">';
        }

    /* CONVERTS VAR TO USE IN JQUERY SCRIPT */
    echo '<script>';
    echo 'var grade = ' . json_encode($grade) . ';';
    echo 'var course = ' . json_encode($course) . ';';
    echo '</script>';
?>

    <script src="includes/global.inc.js"></script>

    <!-- DIV TO ECHO OUTPUT FROM PLACE.INC.PHP -->
    <div class="selectedPlace" id="selectedPlace"></div>

单击其中一个按钮时,应将值发送到文件“global.inc.js”,其中我放置了一个用于监听点击的脚本:

$('input#$row['placeName']').on('click', function() {
    var place = $('input#place-$row['placeName']').val();
    if (place !='') {
    $.post('includes/place.inc.php', {place: place, grade: grade, course: course }, function(data) {
        $('div#selectedPlace').text(data);
    });
    }
});

我的问题是,我不知道按钮id的名称是什么 - 因为它是从数据库表中的varchar创建的。如何将此信息放入我的.js文件中,因此无论用户在courses.php上按什么按钮,脚本都会从按钮发布单个值。

javascript php jquery html
4个回答
0
投票

使用jQuery通过Ajax设置变量(方法POST)。


0
投票

尝试更改代码如下:

 $('input[type="submit"]').on('click', function() {
    var place = $(this).val();
    if (place !='') {
    $.post('includes/place.inc.php', {place: place, grade: grade, course: course }, function(data) {
        $('div#selectedPlace').text(data);
    });
    }
});

0
投票

在回显输入时设置click属性:

echo sprintf('<input type="submit" id="place-%s" value="%s" onclick="yourfunction("%s", "%s", "%s") >', $row['placeName'], $row['placeName'], $grade, $course);

并将此功能分开:

function yourfunction(place, grade, course){
 $.post('includes/place.inc.php', {place: place, grade: grade, course: course }, function(data) {
        $('div#selectedPlace').text(data);
    });

}


0
投票

您应该使用通用的单击处理程序而不是您正在使用的处理程序。

如果所有按钮都有一个共同的类,您可以听取所有的点击。

将类inputBtn添加到以下:

echo '<input type="submit" id="place-' . $row['placeName'] . '" value="' . $row['placeName'] . '" class="inputBtn">';

更改

$('input#$row['placeName']').on('click', function() {

$('.inputBtn').on('click', function() {
  var btnID = $(this).prop('id');
  var spltID = btnID.split('-'); //split from the - & spltID[1] will contain the part that you required.      
}

这段代码的编写只是为了清楚起见。可以使其更加优化,例如可以在btnID上调用split()函数来减少代码行。

© www.soinside.com 2019 - 2024. All rights reserved.