Я пытаюсь передать строку "0541210022-0" во всплывающее окно с помощью Javascript-метода. Когда я просматриваю номер в моем всплывающем окне, он отображается как 11575826. Может кто-то, пожалуйста, помогите мне определить, почему это значение меняется? Я добавлю код, а также скриншоты. Спасибо!
Код для всплывающего окна. Сначала HTML/PHP Button, затем javascript.
HTML/PHP
<?php
$Number = $row['N1']."-".$row['N2'];
?>
<button onClick="openPopup(<?php echo $idt;?>, <?php echo $Number;?>);"><?php echo $idt;?></button>
Javascript
function openPopup(id, Number) {
alert(Number);
document.getElementById('draggable').style.display = 'block';
if ( true ) console.log( "This element is draggable!" );
if ( false ) console.log( "This element failed at being draggable!" );
document.getElementById('popupID').innerHTML = id;
document.getElementById('popupNumber').innerHTML = Number;
}
На данный момент число = 11575826. Затем я покажу вам снимки экрана, чтобы помочь визуализировать то, что я вижу.
Число выводится в ячейку таблицы. Как видите, это 054121022-0.
Затем я покажу количество, отображаемое в сообщении java, которое должно быть одного и того же номера, но оно каким-то образом изменяется. Как видите, число сильно отличается от того, что должно быть.
Спасибо вам за помощь! Я очень смущен, почему это происходит. Я боюсь, что как-то значение усекается, но я не знаю, как передать значение функции Javascript в виде строки.
Я думаю, вы должны добавить цитаты следующим образом:
<button onClick="openPopup(<?php echo $idt; ?>, '<?php echo $Number; ?>');"><?php echo $idt; ?></button>
11575826 (десятичный) такой же, как 054121002 (восьмеричный), а Javascript (как и большинство языков C-ish) обрабатывает числа с ведущими нулями как восьмеричные. Не знаете, почему последние 2 усекаются, или если это опечатка, но вы звоните
openPopup(WhateverIdtIs, 054121002-0);
который является таким же, как
openPopup(WhateverIdtIs, 11575826-0);
Вам нужно указать строку, чтобы она оставалась следующей строкой:
<button onClick="openPopup('<?php echo $idt;?>', '<?php echo $Number;?>');"><?php echo $idt;?></button>
Number
как переменную в вашем js. Что именно вы думаете,if ( true )
иif(false)
будет делать?true
всегда true иfalse
всегда false, поэтому первыйif
всегда будет выполняться, а второй никогда не будет выполняться. Вам нужно сесть, добавить несколько операторовconsole.log("msg")
и отследить, что делает ваш код. Если у вас нет четкого заявления о том, с чем вы собираетесь сравнивать, сделайте это в первую очередь.#draggable
элемент#draggable
и откуда вы предположительно берете число.