Как заставить кнопки, созданные с php работать? - PullRequest
0 голосов
/ 16 января 2020

Btn1 запускает функцию getId надлежащим образом, но два других btns - нет, как я могу заставить их работать правильно? Я думаю, что код ниже показывает то, что я пытаюсь достичь, поэтому, пожалуйста, игнорируйте оставшуюся часть этого параграфа. Это здесь, потому что страница не позволит мне опубликовать вопрос, пока я не добавлю больше деталей.

<?php 
    $id ="22";
    $name = "Joseph";
    $btn1 = "<button onclick='getId($id)'>$name $id</button>";
    $btn2 = "<button onclick='getId($id,$name)'>$name $id</button>";    
    $btn3 = "<button onclick='getId($name)'>$name $id</button>";

    echo $btn1;
    echo "<br>";
    echo $btn2; 
    echo "<br>";
    echo $btn3; 
?>

<!DOCTYPE html>
<html>
<script>
    function getId(x, y) {  
        alert(x);
        alert(y)
        console.log(x);
        console.log(y);
    }
</script>
<body>
    "ReferenceError: Joseph is not defined"
</body>
</html>

Ответы [ 2 ]

1 голос
/ 16 января 2020

Что касается передачи строк в качестве параметров функции (как указано выше), строковое значение должно быть заключено в кавычки, иначе вы получите ошибку. Вместо того, чтобы жестко задавать параметры в этом случае, вы могли бы использовать объект arguments, свойственный функциям, и динамически обращаться к параметрам.

<!DOCTYPE html>
<html>
    <head>
        <title>function arguments and quotes....</title>
    </head>
    <script>
        function getId() {  
            for( let i=0; i < arguments.length;i++ ){
                alert(arguments[i]);
                console.info(arguments[i]);
            }
        }
    </script>
    <body>
        <?php 

            $id ="22";
            $name = "Joseph";
            $btn1 = "<button onclick='getId($id)'>$name $id</button>";
            $btn2 = "<button onclick='getId($id,\"$name\")'>$name $id</button>";    
            $btn3 = "<button onclick='getId(\"$name\")'>$name $id</button>";

            echo $btn1;
            echo "<br>";
            echo $btn2; 
            echo "<br>";
            echo $btn3; 
        ?>  
    </body>
</html>

function getId() {  
  for( let i=0; i < arguments.length;i++ ){
    alert(arguments[i]);
    console.info(arguments[i]);
  }
}
<button onclick='getId(22)'>Joseph 22</button><br>
<button onclick='getId(22,"Joseph")'>Joseph 22</button><br>
<button onclick='getId("Joseph")'>Joseph 22</button>
0 голосов
/ 16 января 2020
<?php 
    $id ="22";
    $name = "Joseph";
    $btn1 = "<button onclick='getId($id,\"$name\")'>$name $id</button>";

    echo $btn1;
    echo "<br>";    
?>

<!DOCTYPE html>
<html>
<script>
    function getId(x, y) {  
        alert(x);
        alert(y)
        console.log(x);
        console.log(y);
    }
</script>
<body>
</body>
</html>
...