2015-01-29 3 views
0

Я пытаюсь передать строку «0541210022-0» во всплывающее окно с помощью Javascript-метода. Когда я просматриваю номер в моем всплывающем окне, он отображается как 11575826. Может кто-то, пожалуйста, помогите мне определить, почему это значение меняется? Я добавлю код, а также скриншоты. Спасибо!Передача неправильного значения в Javascript Функция

Код для всплывающего окна. Сначала 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.

enter image description here

Далее я покажу номер будучи отображалось в Java оповещения, которая должна быть такой же номер, но она меняется как-то. Как видите, число сильно отличается от того, что должно быть.

enter image description here

Спасибо за помощь! Я очень смущен, почему это происходит. Я боюсь, что как-то значение усекается, но я не знаю, как передать значение функции Javascript в виде строки.

+0

Поскольку он используется как функция js, вы не должны использовать 'Number' в качестве переменной в js. Что именно вы думаете, 'if (true)' и 'if (false)' будет делать? 'true' всегда истинно, а' false' всегда false, поэтому первый 'if' будет всегда запускаться, а второй никогда не будет выполняться. Вам нужно сесть, добавьте несколько 'console.log (" msg ")' операторов и проследите, что делает ваш код. Если у вас нет четкого описания того, что вы намерены сделать для сравнения, сделайте это первым. – scrappedcola

+0

Это имена поддельных переменных, приведенные только для примера? Вам следует избегать присвоения переменной «Число», учитывая, что это функция. Кроме того, для чего нужны истинные/ложные несуществующие сравнения? Я вижу, теперь я просто повторяю уже сказанное. Вы должны опубликовать часть html таблицы для дальнейшей справки, что может показать нам, что элемент '# draggable', и где вы якобы принимаете номер. – porjolovsky

ответ

0

Я думаю, вы должны добавить кавычки таким образом:

<button onClick="openPopup(<?php echo $idt; ?>, '<?php echo $Number; ?>');"><?php echo $idt; ?></button> 
+0

Это решило проблему, спасибо! – vector

4

11575826 (десятичное) такая же, как 054121002 (восьмеричное) и Javascript (например, большинство C-иш языков) рассматривает числа с ведущими нулями как восьмеричный. Не знаю, почему последний 2 усекается, или, если это опечатка, но вы звоните

openPopup(WhateverIdtIs, 054121002-0); 

, которая является такой же, как

openPopup(WhateverIdtIs, 11575826-0); 

Вы должны процитировать строку для того, чтобы остаться a string:

<button onClick="openPopup('<?php echo $idt;?>', '<?php echo $Number;?>');"><?php echo $idt;?></button> 
+0

Спасибо за объяснение! – vector