php - print - wordpress title tag
Funciones Javascript y PHP (7)
¿Es posible invocar una función desde PHP usando onsubmit
desde JavaScript? Si es así, ¿podría alguien darme un ejemplo de cómo se haría?
function addOrder(){
$con = mysql_connect("localhost", "146687", "password");
if(!$con){
die(''Could not connect: '' . mysql_error())
}
$sql = "INSERT INTO orders ((user, 1st row, 2nd row, 3rd row, 4th row)
VALUES ($session->username,1st variable, 2nd variable, 3rd variable, 4th variable))";
mysql_query($sql,$con)
if(mysql_query($sql,$con)){
echo "Your order has been added";
}else{
echo "There was an error adding your order to the databse: " . mysql_error();
}
}
Esa es la función que quiero llamar. Es un sistema de ordenamiento, ingresa la cantidad de cada artículo que desea, presiona enviar y debe agregar el orden a la tabla.
Es indirectamente posible llamar a una función PHP usando JavaScript. Como ya han mencionado otras personas, querrás hacer algún tipo de solicitud, esto no necesariamente tiene que ser Ajax. Podría ser sincrónico. Sin saber exactamente lo que estás tratando de lograr, esto es lo que yo sugeriría:
- Adjunte un controlador de eventos a la opción de envío del formulario (o use el envío estándar si no va a usar Ajax)
- Agrupe los parámetros que deberán pasarse a la función PHP en una POST o en la cadena de consulta de la dirección de la página.
- Inicie la solicitud (ya sea de forma asíncrona o mediante envío)
- En el script PHP que es el objetivo de la solicitud, quite los parámetros de $ _ POST o $ _ GET.
- Llame a la función PHP que necesita con los parámetros.
- Haga eco de la respuesta y analícela según sea necesario una vez que la solicitud finalice.
De nuevo, esto es un poco general, pero también lo es tu pregunta. Espero que esto le dé algún tipo de dirección.
Lo más cercano que va a obtener será xajax, que le permitirá ajustar una función PHP en una llamada AJAX. Lo he usado bastante antes de empezar a trabajar con Zend Framework y me pareció demasiado difícil de implementar de manera OO.
Con xajax escribes una función PHP que hace toda tu lógica habitual y luego devuelve un objeto ObjectResponse que manipula el navegador a través de AJAX (cuadros de alerta, cambio de HTML, CSS, etc.). Registras tu función con xajax y luego xajax escupirá javascript en la sección de tu HTML.
En su HTML, simplemente llama a la función javascript que generó xajax y se ocupa del resto a través de AJAX.
Lo siento, tu pregunta es muy básica. Dependiendo de a qué función de PHP quieras llamar en formsubmit, Ajax no te ayudará. ¿Conoce las diferencias fundamentales (cliente / servidor) entre PHP y JavaScript?
Querrá hacer algo como:
<form action="add_order.php" method="POST" id="add_order_form">
<!-- all of your form fields -->
<input type=''submit'' value=''Add Order''>
</form>
<script type="text/javascript">
$("#add_order_form").submit(function() {
var action = $("#add_order_form").attr("action");
var data = $("#add_order_form").serialize();
$.post(action, data, function(json, status) {
if(status == ''success'') {
alert(json.message);
} else {
alert(''Something went wrong.'');
}
}, "json");
return false;
});
</script>
Y luego tener un archivo PHP llamado add_order.php
con algo como:
$success = 0;
$con = mysql_connect("localhost", "146687", "password");
if(!$con) {
$message = ''Could not connect to the database.'';
} else {
// SANITIZE DATA BEFORE INSERTING INTO DATABASE
// LOOK INTO MYSQL_REAL_ESCAPE_STRING AT LEAST,
// PREFERABLY INTO PREPARED STATEMENTS
$query_ok = mysql_query("INSERT INTO `orders` ....");
if($query_ok) {
$success = 1;
$message = "Order added.";
} else {
$message = "Unable to save information";
}
}
print json_encode(array(''success'' => $success, ''message'' => $message));
Para que esta belleza funcione, deberá dirigirse al sitio web de jQuery , descargarlo e incluir el archivo jquery.js.
No he probado lo anterior, pero debería funcionar. Buena suerte.
Sí, otro tutorial excelente y sencillo para aprender ajax es:
http://24ways.org/2005/easy-ajax-with-prototype/
El prototipo es otra cosa que recomiendo si no has ido muy lejos con tu proyecto y necesitas revertir muchas funcionalidades.
¡Buena suerte!
No puedes llamar a una función PHP desde Javascript ...
Javascript es un lenguaje de cliente (se ejecuta en el navegador web, después de recibir la página web) mientras que PHP está en el lado del servidor (se ejecuta antes de que se represente la página web). No tienes forma de hacer una llamada a otra.
... pero puedes obtener el resultado de un script PHP externo
Hay una función de Javascript llamada xhttprequest que le permite llamar a cualquier script en el servidor web y obtener su respuesta. Entonces, para resolver su problema, puede crear un script PHP que genere texto (o XML, o JSON), luego llámelo y analice la respuesta con Javascript.
Este proceso es lo que llamamos AJAX , y es mucho más fácil hacerlo con una buena herramienta que usted mismo. Eche un vistazo a JQuery , es una biblioteca de JavaScript poderosa pero fácil de usar que tiene ayudantes incorporados de AJAX.
Un ejemplo con JQuery (lado del cliente):
$.ajax({
type: "POST", // the request type. You most likely going to use POST
url: "your_php_script.php", // the script path on the server side
data: "name=John&location=Boston", // here you put you http param you want to be able to retrieve in $_POST
success: function(msg) {
alert( "Data Saved: " + msg ); // what you do once the request is completed
}