Php 如何通过截击向服务器发送信息?
我想使用volley库将信息发送到服务器,并将其保存到表中。但是在运行应用程序之后没有数据存储在表中 你能分辨出哪一部分错了吗? (我做了网站上说的大部分事情,但我的问题没有得到解决) cart.javaPhp 如何通过截击向服务器发送信息?,php,android,android-volley,Php,Android,Android Volley,我想使用volley库将信息发送到服务器,并将其保存到表中。但是在运行应用程序之后没有数据存储在表中 你能分辨出哪一部分错了吗? (我做了网站上说的大部分事情,但我的问题没有得到解决) cart.java public class cart extends AppCompatActivity { Button Add; private static final String url="http://localhost/test/addpost.php"; Faculty items
public class cart extends AppCompatActivity {
Button Add;
private static final String url="http://localhost/test/addpost.php";
Faculty items;
JSONArray myarray;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cart);
Add=findViewById(R.id.btn_basket_pay);
dbHandler dbh = new dbHandler(this);
dbh.open();
items=new Faculty();
JSONObject JSONestimate = new JSONObject();
myarray = new JSONArray();
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rec);
final FacultyAdapter facultyAdapter = new FacultyAdapter(this,dbh.display());
recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
recyclerView.setAdapter(facultyAdapter);
dbh.close();
for (int i = 0; i < facultyAdapter.getItemCount(); i++) {
try {
JSONestimate.put("name:" + String.valueOf(i + 1), facultyAdapter.getJSONObject());
myarray.put(facultyAdapter.getJSONObject());
} catch (JSONException e) {
e.printStackTrace();
}
}
Log.d("JSONobject: ", JSONestimate.toString());
Log.d("JSONArray : ", myarray.toString());
Add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new
Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("onResponse", "o");
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("onErrorResponse", "o");
}
}){
@Override
public Map<String,String> getParams(){
Map<String,String> params=new HashMap<>();
params.put("jsonarray",myarray.toString());
return params;
}
};
queue.add(stringRequest);
Toast.makeText(cart.this,"success",Toast.LENGTH_SHORT).show();
}
});
}}
公共类购物车扩展AppCompatActivity{
按钮添加;
私有静态最终字符串url=”http://localhost/test/addpost.php";
教员项目;
JSONArray myarray;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u cart);
Add=findViewById(R.id.btn\u basket\u pay);
dbHandler dbh=新的dbHandler(this);
胸径开放();
项目=新教员();
JSONObject JSONestimate=新的JSONObject();
myarray=newJSonarray();
RecyclerView RecyclerView=(RecyclerView)findViewById(R.id.rec);
final FacultyAdapter FacultyAdapter=新的FacultyAdapter(this,dbh.display());
setLayoutManager(新的LinearLayoutManager(这个,LinearLayoutManager.VERTICAL,false));
recyclerView.setAdapter(facultyAdapter);
胸径关闭();
对于(int i=0;i
我用postman程序检查了php代码,它工作正常
addpost.php
<?php
if($_SERVER['REQUEST_METHOD']=='GET'){
require_once('dbConnect.php');
$name = $_GET['name'];
$price= $_GET['price'];
$id = $_GET['id'];
$response = array();
$server_ip = gethostbyname(gethostname());
$sql = "INSERT INTO tblcart (id,name,price) VALUES ('$id','$name','$price')";
try {
if (mysqli_query($cnn,$sql)) {
$response = "done";
}else{
$response = "error";
}
} catch (Exception $e) {
$response = "error";
}
echo $response;
}
?>
如果您想在计算机上运行android virtual decive,则url应更改为“”。如果您使用“localhost”,android虚拟设备将访问自身。我昨天也遇到过这种情况。
希望有用!Putvar\u dump($\u GET);
在PHP代码的顶部查看您得到了什么。@JayBlanchard但它没有解决问题它不应该解决问题,它应该让我们看看您在PHP代码中得到了什么。它返回了什么?@JayBlanchard表中没有要返回的值,但当我手动添加值时,它会显示existing值。是否添加了端口号?请尝试“”或“我导入了Ip系统”،应用程序的其他部分从服务器接收信息并在应用程序中显示。但在本节中,它不会向服务器发送信息。