2016-03-15 3 views
0

Возможно, я задаю очень простой вопрос. Я искал много сообщений, но не нашел правильной информации. Пожалуйста, укажите мне в правильном направлении.Доступ к XSL внутри jQuery

Ниже приводится мой сценарий. Я использую jQuery/Javascript, HTML, XSL.

У меня есть образцы данных в XML. Структура данных выглядит следующим образом

<information> 
    <qContact> 
     <name>TOM</name> 
     <phone>612656656</phone> 
     <email>[email protected]</email> 
     <empId>1221212<empId> 
    </qContact> 
    <qContact> 
     <name>SRAMK</name> 
     <phone>566541042</phone> 
     <email>[email protected]</email> 
     <empId>654212301<empId> 
    </qContact> 
    <!-- ... ---> 
</information> 

У меня есть таблица, в которой d1isplays часть этой информации в таблицу, которая имеет гиперссылку/кнопку «EDIT». Поэтому, когда пользователь нажимает кнопку редактирования в таблице, мне нужно заполнить данные в текстовых/радио-кнопках, у меня это есть в формате XSL.

Я прикрепил образец рисунок моего экрана: screenshot

я не уверен, как получить доступ к XSL в JQuery или JavaScript. В html я был ablt для доступа, например, я повторяю его вот так.

<xsl:for-each select="/<xsl:for-each select="/information/qContact">"> 

<xsl:value-of select="name"/> 

Здесь у меня есть список XSL узлов, мне нужно один из них, предположит, что, когда пользователь нажимает на строке микрофона, мне нужно получить свойство Майка из XSL и установить их в текстовых полях.

Это выполнимо?

  1. доступа к XSL в JQuery

  2. Перебор конкретного узла в этом случае <qContact> (а затем получить имя, адрес электронной почты, телефон и т.д.)?

Пожалуйста, помогите мне.


Некоторые больше информации:

1) Я использую Html для создания различных полей [текст, радио-кнопки и т.д.]

2) Когда я сохранить данные в базе данных и при перезагрузке формы, Я помещаю эти данные в XSL и получаю доступ к ним на странице html.

пример:

<td><input id="empName" type="text" name="name" value="{/information/qContact/name}" /></td> 

3) можно получить доступ к его внутри JQuery также.

Пример:

console.log("<xsl:value-of select="/information/qContact/name>"); 

Проблема Сценарий:

<xsl:for-each select="/information/qContact"> 

<a href="#" onclick="edit('Generated','{ID}','{current()}');event.returnValue=false; return false;">Edit</a> 

</xsl:for-each> 

function edit(name,id,selectData){ 
        console.log("Srikanth"); 
        console.log(selectData); // This is printing all the data inside it. 
        console.log("<xsl:value-of select="/information/name"/>"); // Not able to access like this 
        $('#name').val('<xsl:value-of select="/information/qContact/name"/>');// Not able to access like this 
        $('#email').val('<xsl:value-of select="/information/qContact/email"/>');// Not able to access like this 
        console.log(id); 

      } 

+0

Ваш вопрос остается неясным. Для чего вам нужен XSL? Как вы его запускаете? – Tomalak

+0

Отредактировано сообщение, пожалуйста, дайте мне знать, если вы не понимаете мою проблему. – srikanth

ответ

0

Названное Вопрос Доступ XSL внутри JQuery
Короткий ответ: Вы не можете. Вы можете выполнить xslt с transformNode (в зависимости от браузера).

Но это не то, что вам нравится делать.
Имейте в виду, что есть три шага.

  • Загрузка XML и XSL и генерирующий HTML (с JS)
  • загрузки (интерпретации сгенерированный HTML) - XML-и XSLT не доступен больше (по крайней мере, не так, как вы делаете).
  • выполнить обработчик OnClick

сгенерированную ссылка будет выглядеть примерно так:

< a href="#" onclick="edit('Generated','',' 
     TOM 
     612656656 
     [email protected] 
    1221212 
    ');event.returnValue=false; return false;">Edit</a> 

этого вам необходимо сгенерировать HTML или представление JavaScript требуемых данных.

Например генерировать объект JS с именем {name: 'TOM'}:

<a href="#" 
     onclick="edit('Generated','{ID}',{{ name: '{name}' }});event.returnValue=false; return false;">Edit</a> 
+0

Спасибо за ваш ответ. Похоже, я могу решить свою проблему. Как добавить сюда дополнительные атрибуты? Я имею в виду, если я хочу передать электронную почту также в onclick? Edit Это как мне нужно делать? Как я могу получить доступ к электронной почте и номеру телефона в методе редактирования. И будет ли какое-либо изменение в синтаксисе функции. Функция edit (название, источник, имя) { } Я вижу эту ошибку. Uncaught ReferenceError: edit не определен. В консоли браузера. – srikanth

+0

Правильным синтаксисом для добавления электронной почты будет '{{name: '{name}', email: '{email}'}}' Третий параметр edit() будет теперь объектом. Попробуйте log 'selectData.name' или' selectData.email' –

+0

Спасибо, решил мою проблему. – srikanth

Смежные вопросы