Запуск функции PHP при нажатии PHP эхо HTML при нажатии кнопки - PullRequest
1 голос
/ 04 апреля 2020

Я работаю над проектом со своей школой, но не знаю, как вызвать функцию PHP, когда нажата кнопка HTML

<?php
function sqlUpdateTheScore($idMinusOneString){
    $idminusOneVal=(int)$idMinusOneVal;
    $MsgQuery=mysqli_query($conn,"UPDATE Point SET Point=".returnCurrentPoint($idMinusOneVal)."WHERE id=".($idMinusOneVal+1).";");
}
 for($i=0;$i<$tot;$i++){
        print "<tr>" ; 
        print "<td align='center'>" .$tot_result[$i][0]."</td>";
        print "<td align='center'>" .$tot_result[$i][1]."</td>";
        print "<td align='center'>" .$tot_result[$i][2]."</td>";
        print "<td align='center'><button id='dec_".$i."' onclick='decreaseByOne(".$i.");'>-1</button><div id='pointOfStudent".$i."'>" .$tot_result[$i][3]."</div><button id='inc_".$i."' onclick='increaseByOne($i);'>+1</button></td>";
        print "<td align='center'><button onclick='sqlUpdateTheScore($i);'>SAVE</button></td>";
        print "</tr>" ;
    } 
?>

это sqlUpdateTheScore (); функция наверху

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Попробуйте это

PHP:

Измените свою SAVE кнопку на

<button class="save_button" value=$i>SAVE</button>

Добавить

if (isset($_POST['idMinusOneString'])) {
    sqlUpdateTheScore($_POST['idMinusOneString']);
}


JS:

добавить AJAX (с jQuery)

$('.save_button').click(function() {
    $.ajax({
        type: "POST",
        url: "this.php",
        data: { idMinusOneString: $(this).val() }
    }).done(function( msg ) {
        alert( "Data Saved: " + msg );
    });
});
0 голосов
/ 04 апреля 2020

Вы не можете напрямую вызывать php функции из html. (Я также нахожу это раздражающим)

Есть два обходных пути, которые вы можете использовать. Самая простая форма:

<form action="thePage.php" method="POST">
    <input type="text" name="newValue" id="newValue" hidden />
    <button onclick="changeValue()">Change Value</button>
    <input type="submit" value="SAVE" name="submit" />
</form>

JavaScript:

function changeValue() {
    document.getElementById("newValue").innerText = "Some new value";
}

PHP:

if (isset($_POST["submit"])) {
    $newValue = $_POST["newValue"]; // You can then run functions off this value
}

Другой способ - использовать AJAX , Здесь - хороший турориал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...