2012-03-03 2 views
0
<a href="#" onclick="return purchaseEntry('39873');">ABC</a> 

Я планирую выполнить сканирование на веб-страницу и получить определенное содержимое с помощью регулярного выражения. Однако это содержимое появляется только после активации onclick. Мне нужно попасть в ABC и получить контент. Я не могу использовать file_get_content(), потому что нет ссылки, которая ведет меня на страницу ABC. Содержимое ABC появляется, когда пользователь нажимает на него. Результаты вызывают через Javascript/Ajax/Json.Запуск «onclick» через PHP

ABC содержание:

Name: XXXX 
Address: XXXXXX 

Любая идея, как ползти к ABC и получать содержание?

Примечание: Мне нужно написать PHP-скрипт, который сканируется на удаленную страницу и извлекает содержимое ABC.

Дополнительно:

function purchaseEntry(customerid) { 
    $('customeridfield').value = customerid; 
    if (approvedAgents()) { 
     e1 = $('entrylisttable'); 
     e1.hide(); 
     getExistingDetails(customerid, 'confirmstatusexistingdetails'); 
     $('confirmstatushajjlicenceno').value = ''; 
     $('confirmstatusapproved').checked = false; 
     e1 = $('confirmstatus'); 
     e1.show(); 
    } 

    return false; 
} 

Также здесь getExistingDetails:

function getExistingDetails(customerid, existingdetails) { 
    e1 = $(existingdetails); 
    e1.innerHTML = 'Loading ... <img src="/jpg/ajaxloader.gif" />'; 

    var url = '/samex/index.php'; 
    var pars = 'option=com_directory&view=entry2&customerid=' + customerid + '&format=raw'; 
    new Ajax.Request(url, { method: 'get', parameters: pars, 
     onSuccess: function(request) { 
      var json = request.responseText.evalJSON(); 
      jsondata = json['data']; 
      e1 = $(existingdetails); 
      e1.innerHTML = jsondata['clientdata']; 
     }, 
     onFailure: function(request) { 
      e1 = $(existingdetails); 
      e1.innerHTML = 'Unable to get information for customer ' + customerid; 
     } 
     }); 
} 

Любые предложения?

+0

Предоставить js код покупкиEntry() и где u отобразить это? – sandeep

+2

javascript и php работают в разных средах. Единственное возможное взаимодействие между ними - AJAX –

+0

Не совсем уверен, что получаю то, что вы имеете в виду, - вы хотите в основном вытащить это имя функции (и значение) с удаленной страницы, а затем ... запустить ее? – BenOfTheNorth

ответ

2

Вы не можете запускать события JavaScript из PHP. PHP - это серверный язык, тогда как HTML и JavaScript являются клиентскими языками.

Единственный способ вы можете получить данные на стороне клиента HTML и JavaScript, чтобы использовать один из следующих способов:

Используйте форму HTML с действием представить данные обратно на сервер.

<form action="/submit.php"> 
    <input name="purchaseEntry" value="39873" /> 
    <input type="submit" value="Submit" /> 
</form> 

Используйте вызов AJAX для отправки данных на сервер без перезагрузки страницы.

// jQuery ajax 
$.ajax({"url" : "/submit.php", 
     "type" : "post", 
     "data" : "purchaseEntry=" + document.getElementById("purchase-entry") 
     "success" : function() { 
      alert("data sent to server"); 
     } 
); 

Извлечь данные из объекта $ _REQUEST, когда пользователь перейдет на другую страницу. Это предполагает, что ваши данные находятся в ссылке.

<p><a href="/page2.php?purchaseEntry=39873">Page 2</a></p> 
+0

перефразировал мой вопрос .... – user311509

+0

Большинство сканеров не смогут читать DHTML (динамический HTML). В общем, ваш искатель увидит только HTML-файл RAW. Однако вы могли бы выяснить, что такое URL-адрес, когда вы нажимаете ссылку на удаленной странице, полностью обходя пользовательский интерфейс. Если удаленный сервер не возвращает JSON с заполнением, вам нужно будет извлечь его с сервера, чтобы избежать междоменных ограничений. – jmort253

+0

Quick msg: После использования firebug я обнаружил, что все содержимое, которое мне нужно, находится в e1.innerHTML = jsondata ['clientdata']; ... – user311509

2

Ваш purchaseEntry('39873') может содержать ajax call в вашем файле php.

Вы php файл может затем реагировать с json преобразованного из array с использованием echo json_encode($yourArray)

Тогда ваш ajax вызов может переконвертировать его в Javascript array/object из полученного json string от php.

+0

перефразировал мой вопрос .... – user311509

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