Как решить Uncaught SyntaxError: неожиданный идентификатор при передаче строки в функцию JavaScript с помощью onclick внутри эхо PHP - PullRequest
0 голосов
/ 04 ноября 2018

Я получаю

Uncaught SyntaxError: Неожиданный идентификатор

и когда я изменяю onclick='EditClient(\"$edit_query\"); на одинарные кавычки, я получаю

Неожиданная ошибка конца ввода.

Таблица отображается с данными из базы данных mysql, но я пытаюсь использовать содержимое строки php $ edit_query и отправить ее в функцию EditClient javascript для установки текстовых полей на той же странице с кнопкой обновления.

<script src="jquery/jquery-3.1.1.min.js"></script>
<link rel="stylesheet" type="text/css" href="Clients.css">
<script>

$(document).ready(function() {
    DisplayClients();
});

function EditClient(x){

    alert(x);
}

function DisplayClients(){

    <?php 

        $query = "SELECT * from clients";
        $res_string = "<table border='1'><tr><th>ID</th><th>Name</th><th>Address</th><th>GST No</th><th>Telephone</th><th>Edit</th><th>Delete</th></tr>";
        $result = mysql_query($query, $conn);

        $edit_query = "";

        while ($row = mysql_fetch_array($result)) {

        $edit_query = $edit_query.$row["cid"]."#".$row["cname"]."#".$row["caddress"]."#".$row["cgstno"]."#".$row["ctel"];
        $res_string = $res_string."<tr><td>".$row["cid"]."</td><td>".$row["cname"]."</td><td>".$row["caddress"]."</td><td>".$row["cgstno"]."</td><td>".$row["ctel"]."</td><td class='edit' onclick='EditClient(\"$edit_query\");'>Edit</td><td>Delete</td></tr>";

        }       

        $res_string = $res_string."</table>";
    ?>

    var displaytable = "<?php echo $res_string;?>";

    $("#clienttable").html(displaytable);

}


</script>

Ответы [ 3 ]

0 голосов
/ 04 ноября 2018

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

$res_string = $res_string."<tr><td>".$row["cid"]."</td><td>".$row["cname"]."</td><td>".$row["caddress"]."</td><td>".$row["cgstno"]."</td><td>".$row["ctel"]."</td><td class='edit' onclick=\"EditClient(\"$edit_query\");\">Edit</td><td>Delete</td></tr>";

Я думаю, вы должны иметь двойные кавычки на клике:
<td class='edit' onclick=\"EditClient(\"$edit_query\");\"

0 голосов
/ 04 ноября 2018
    $res_string = $res_string."<tr><td>".$row["cid"]."</td><td>".$row["cname"]."</td><td>".$row["caddress"]."</td><td>".$row["cgstno"]."</td><td>".$row["ctel"]."</td><td class='edit' onclick=\"EditClient('$edit_query');\">Edit</td><td>Delete</td></tr>";

Это сработало

0 голосов
/ 04 ноября 2018

Неожиданно обычно означает, что его там быть не должно.

Что заставляет меня заключить, что эхо должно использоваться как вызов функции.

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