以上就是给各位分享如何在PHP中获取JavaScript变量值,其中也会对js获取php的变量进行解释,同时本文还将给你拓展Android,使用javascript界面从webview中提取javas
以上就是给各位分享如何在PHP中获取JavaScript变量值,其中也会对js获取php的变量进行解释,同时本文还将给你拓展Android,使用javascript界面从webview中提取javascript变量、COM中获取JavaScript数组大小的代码_javascript技巧、html获取javascript变量值的方法有哪些、javascript - js变量在PHP中怎么获取该变量?等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- 如何在PHP中获取JavaScript变量值(js获取php的变量)
- Android,使用javascript界面从webview中提取javascript变量
- COM中获取JavaScript数组大小的代码_javascript技巧
- html获取javascript变量值的方法有哪些
- javascript - js变量在PHP中怎么获取该变量?
如何在PHP中获取JavaScript变量值(js获取php的变量)
我想要可以使用PHP访问的JavaScript变量的值。我正在使用下面的代码,但它没有在PHP中返回该变量的值。
// set global variable in javascript profile_viewer_uid = 1;
// php code$profile_viewer_uid=$_POST[''profile_viewer_uid''];
这给了我以下错误:-
A PHP Error was encounteredSeverity: NoticeMessage: Undefined index: profile_viewer_uid
我使用的另一个PHP代码给出了空值
$profile_viewer_uid = "<script language=javascript>document.write(profile_viewer_uid);</script>
当我回声时,它什么也没显示。
答案1
小编典典您将需要使用JS将其中包含变量的URL发送回去,例如:http :
//www.site.com/index.php?uid=1
通过在JS中使用如下代码:
window.location.href=”index.php?uid=1";
然后在PHP代码中使用$ _GET:
$somevar = $_GET["uid"]; //puts the uid varialbe into $somevar
Android,使用javascript界面从webview中提取javascript变量
如何将这个变量从网站提取到我的android代码?
我想它应该可以使用javascript界面,但我怎么得到它?
<script type="text/javascript">
var Ids = "[4161, 104, 121, 202, 1462]";
</script>
我无法将网站上的代码更改为返回值的方法.
有什么建议么?
解决方法:
您可以在webview.loadurl调用中使用javascript:scheme.它将在webview页面中执行javascript.
从那里你可以让它在你的javascript界面中调用一个函数.
webview.loadUrl("javascript:Android.getIds(Ids);");
Android是用于声明javascript界面的名称空间.
//Add the javascript interface to your web view
this.addJavascriptInterface(new CustomJavaScriptInterface(webViewContext), "Android");
请注意,javascriptinterface仅适用于基本类型.所以你实际上不能直接传递一个数组.只需使用javascript方案循环遍历您的数组.我看到它不是一个真正的数组,所以你应该没关系:
public class CustomJavaScriptInterface {
Context mContext;
/** Instantiate the interface and set the context */
CustomJavaScriptInterface(Context c) {
mContext = c;
}
/** retrieve the ids */
public void getIds(final String myIds) {
//Do somethings with the Ids
}
COM中获取JavaScript数组大小的代码_javascript技巧
IDispatch类型的指针,则表明该数组对象实际是一个JavaScript的内建数组对象,在JavaScript端,我们可以通过length属性来得到数组的大小,那么在此处,可以通过GetIDsOfNames函数和Invoke函数来获取数组长度,这样可以动态变量数组内容。
// 获取数组长度
BSTR bstrLength = L"length";
DISPID dispid;
hr = lpDispatch->GetIDsOfNames(IID_NULL, &bstrLength, 1,
LOCALE_USER_DEFAULT, &dispid);
if ( SUCCEEDED(hr) )
{
CComVariant varResult;
hr = lpDispatch->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT,
DISPATCH_PROPERTYGET, &noArgs, &varResult, NULL, NULL);
if ( varResult.vt == VT_I4)
{
nLength = varResult.intVal;
}
}
这个时候,nLength获得得到的就是数组的长度。
在JavaScript中的数组时一个对象,数组内容则是该对象的属性,是动态被创建的,这些属性的查询方式与length的查询方式有些类似,也是GetIDsOfNames和Invoke函数,主要差别在于名字的区别,数组中元素对象的属性,其名字是动态创建,也就是可以通过下标方式方式获取,因此,在此处,也可以通过下标方式获取该属性名称,具体如下:
for ( int i=0; i
CComVariant vaIndex(i, VT_I4);
vaIndex.ChangeType(VT_BSTR);
DISPID dispid;
hr = lpDispatch->GetIDsOfNames(IID_NULL, &vaIndex.bstrVal,1,
LOCALE_USER_DEFAULT, &dispid);
if ( FAILED(hr) )
{
continue;
}
CComVariant varResult;
hr = lpDispatch->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT,
DISPATCH_PROPERTYGET, &noArgs, &varResult, NULL, NULL);
VARTYPE vt = varResult.vt;
if (vt == VT_DISPATCH )
{
InvokeArray( varResult );
continue;
}
hr = varResult.ChangeType(VT_BSTR);
CComBSTR bstrVal = varResult.bstrVal;
}