通过PHP运行“onclick”

时间:2012-03-03 10:08:24

标签: php javascript

<a href="#" onclick="return purchaseEntry('39873');">ABC</a>

我打算抓取网页并使用正则表达式获取某些内容。但是,此内容仅在激活oncl​​ick后显示。我需要进入ABC并获取内容。我无法使用file_get_content(),因为没有链接将我带到ABC页面。用户点击它时会显示ABC内容。结果通过Javascript / Ajax / Json调用。

ABC内容是:

Name: XXXX
Address: XXXXXX

知道如何抓取ABC并获取内容吗?

注意:我必须编写一个可以抓取到远程页面并获取ABC内容的PHP脚本。

额外信息:

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;
        }
        });
}

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您的purchaseEntry('39873')可以包含ajax callphp文件。

然后,您php文件可以使用jsonarray转换为echo json_encode($yourArray)进行回复

然后,您的ajax来电可以从array/object收到的json string将其重新转换为Javascript php

答案 1 :(得分:2)

您无法从PHP运行JavaScript事件。 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>